Package Exports
- swagger2openapi
- swagger2openapi/common.js
- swagger2openapi/package.json
- swagger2openapi/validate
- swagger2openapi/validate.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (swagger2openapi) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
swagger2openapi
Convert Swagger 2.0 definitions into OpenApi 3.0.x
Currently tracking v3.0.0-RC0
Usage:
Options:
-d, --debug enable debug mode, adds specification-extensions [boolean]
-h, --help Show help [boolean]
-o, --outfile the output file to write to [string]
-y, --yaml read and write YAML, default JSON [boolean]
or use the APIs:
var converter = require('swagger2openapi');
var options = {};
//options.debug = true; // sets various x-s2o- properties for debugging
var openapi = converter.convert(swagger, options);
var validator = require('swagger2openapi/validate.js');
var options = {};
var result = validator.validate(openapi, options);
Or use the online version which also includes an API
Vendor extensions
swagger2openapi has support for a limited number of real-world vendor extensions which have a direct bearing on the conversion. All other vendor extensions are left untouched.
Vendor Extension | Vendor | Conversion Performed |
---|---|---|
x-ms-paths | Microsoft | Treated as an analogue of the openapi.paths object |
x-ms-skip-url-encoding | Microsoft | For query parameters, converted to allowReserved:true |
x-ms-odata | Microsoft | References to #/definitions/ are updated to #/components/schemas |
x-ms-parameterized-host | Microsoft | TODO |
x-anyOf | Open Nitro Project | Within schemas, converted to anyOf |
x-oneOf | Open Nitro Project | Within schemas, converted to oneOf |
x-not | Open Nitro Project | Within schemas, converted to not |
See also Amazon API Gateway vendor extensions
It is expected to be able to configure the process of vendor-extension modification using options or a plugin mechanism in a future release.
Tests
To run a test-suite:
node testRunner {path-to-APIs|single-file}
The test harness currently expects files with a .json
or .yaml
extension, or a single named file, and has been tested against
- APIs.guru
- Mermade OpenApi specifications collection
- SOM-Research collection (overlaps with APIs.guru)
It can also be used as a simple validator if given an existing OpenAPI 3.x definition
Metadata reporting
Also included is a tool reportExtensions
to gather a list of vendor (specification) extensions and formats used in a definition or corpus of definitions. For examples of output, see the wiki