Swagger Parser v4.0 is currently in beta, and its API may change slightly before the final release. See the changelog for details.
- Parses Swagger specs in JSON or YAML format
- Validates against the Swagger 2.0 schema and the Swagger 2.0 spec
- Resolves all
$refpointers, including external files and URLs - Can bundle all your Swagger files into a single file that only has internal
$refpointers - Can dereference all
$refpointers, giving you a normal JavaScript object that's easy to work with - Tested in Node, IO.js, and all modern web browsers on Mac, Windows, Linux, iOS, and Android
- Tested on over 200 real-world APIs from Google, Instagram, Cisco, etc.
- Supports circular references, nested references, back-references, and cross-references
- Maintains object reference equality —
$refpointers to the same value always resolve to the same object instance
SwaggerParser.validate(myAPI, function(err, api) {
if (err) {
console.error(err);
}
else {
console.log("API name: %s, Version: %s", api.info.title, api.info.version);
}
});Or use Promises syntax instead. The following example is the same as above:
SwaggerParser.validate(myAPI)
.then(function(api) {
console.log("API name: %s, Version: %s", api.info.title, api.info.version);
})
.catch(function(err) {
console.error(err);
});For more detailed examples, please see the API Documentation
Install using npm:
npm install swagger-parserThen require it in your code:
var SwaggerParser = require('swagger-parser');Install using bower:
bower install swagger-parserThen reference swagger-parser.js or swagger-parser.min.js in your HTML:
<script src="bower_components/swagger-parser/dist/swagger-parser.js"></script>Or, if you're using AMD (Require.js), then import it into your module:
define(["swagger-parser"], function(SwaggerParser) { /* your module's code */ })Full API documentation is available right here
I welcome any contributions, enhancements, and bug-fixes. File an issue on GitHub and submit a pull request.
To build/test the project locally on your computer:
-
Clone this repo
git clone https://github.com/bigstickcarpet/swagger-parser.git -
Install dependencies
npm install -
Run the build script
npm run build -
Run the tests
npm run mocha(test in Node)
npm run karma(test in web browsers)
npm test(test in Node and browsers, and report code coverage) -
Start the local web server
npm start(then browse to http://localhost:8080/www/index.html or http://localhost:8080/test/index.html)
Swagger Parser is 100% free and open-source, under the MIT license. Use it however you want.