Merge multiple swagger files into a swagger file, support JSON/YAML.
npm install swagger-merger```
┌─┐┬ ┬┌─┐┌─┐┌─┐┌─┐┬─┐ ┌┬┐┌─┐┬─┐┌─┐┌─┐┬─┐
└─┐│││├─┤│ ┬│ ┬├┤ ├┬┘───│││├┤ ├┬┘│ ┬├┤ ├┬┘
└─┘└┴┘┴ ┴└─┘└─┘└─┘┴└─ ┴ ┴└─┘┴└─└─┘└─┘┴└─





> Merge multiple related files from a input swagger file, Write to a output swagger file.
>
> Support JSON/YAML.



/.yaml/.yml).
- [x] _CLI_ - Command line interface.Usage
$3
> Includes a _single-level_ of swagger file.- Official standards
- Recommended, universal
For
yaml example:`yaml
$ref: "./host.yaml"
parameters:
- $ref: "name.yaml"
- $ref: "./year.yaml"
- $ref: "age.yaml#/alex/son"
remote:
$ref: "https://raw.githubusercontent.com/WindomZ/swagger-merger/remote.yaml#/name"
responses:
$ref: "./responses.yaml#/post"
`$3
> Includes a _multi-level_ of swagger file.- Non-standard, suggest you use it for yourself
- Instead of
$ref, can be used _side by side_ and not an arrayFor
yaml example:`yaml
paths:
$ref#pets: "./paths/pets.yaml"
$ref#pets-id: "./paths/pets-id.yaml"
paths-url:
$ref#paths: "https://raw.githubusercontent.com/WindomZ/swagger-merger/master/test/no_ext_json"
`Output
yaml:`yaml
paths:
/pets:
hello: world
/pets/{id}:
good: bye
paths-url:
/pets:
hello: world
/pets/{id}:
good: bye
`
$3
> How to use?`bash
$ swagger-merger -h Usage: swagger-merger [-h] [-v] [-c] [-o file] <-i file | file>
Merge multiple swagger files into a swagger file, just support JSON/YAML.
Options:
-h, --help output usage information
-V, --version output the version number
-i, --input input a main/entry JSON/YAML swagger file
-o, --output output a merged JSON/YAML swagger file, default is
swagger.*
-c, --compact compact JSON/YAML format string
--debug debug mode, such as print error tracks
`Easy to use.
`bash
swagger-merger -i in.yaml # Merge in.yaml into swagger.yaml
swagger-merger -i in.yaml -o out.yaml # Merge in.yaml into out.yaml
swagger-merger -i in.yaml -o out.yaml -c # Merge in.yaml into out.yaml and compress it
swagger-merger -i in.yaml -o out.json # Merge in.yaml into out.jsonswagger-merger -i in.json # Merge in.json into swagger.json
swagger-merger -i in.json -o out.json # Merge in.json into out.json
swagger-merger -i in.json -o out.json -c # Merge in.json into out.json and compress it
swagger-merger -i in.json -o out.yaml # Merge in.json into out.yaml
`$3
> How to use?`bash
npm install swagger-merger
``js
#!/usr/bin/env nodeconst swaggerMerger = require('swagger-merger')
swaggerMerger.merge({
input: 'index.json',
output: 'swagger.json',
compact: false
}).catch(e => {
console.error(e)
})
`Install
`bash
npm install swagger-merger -g
`Examples
> It would be more helpful to see these examples.Open the terminal, choose one of the following ways:
- npm
`bash
npm install
npm run test
`- yarn
`bash
yarn
yarn run test
`- swagger-merger) (installed, go to each examples)
`bash
swagger-merger -i index.yaml
swagger-merger -i index.json
`Then, these examples may help you:
$3
- Official swagger example
- _No_ modificationGo to
example/heroku-pets
1. The output swagger.json is same as the expected heroku-pets.json.
1. The output swagger.yaml is similar to the expected heroku-pets.yaml.$3
- Base on official swagger example
- _Modify_ to support for $ref tagsGo to
example/echo
1. The output swagger.json is same as the expected echo.json.
1. The output swagger.yaml is similar to the expected echo.yaml.$3
- Base on official swagger example
- _Modify_ to support for $ref#* tagsGo to
example/petstore_simple
1. The output swagger.json is same as the expected petstore_simple.json.
1. The output swagger.yaml is similar to the expected petstore_simple.yaml.$3
> A way of using $ref instead of $ref#*, and better compatibility.- Same as petstore_simple
- _Modify_ to support for $ref tags
- _Modify_ to support for multiple levels schema
Go to
example/petstore_domain
1. The output swagger.json is same as the expected petstore_simple.json.
1. The output swagger.yaml is similar to the expected petstore_simple.yaml`.If you like it then you can put a :star: on it.