Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
@apidevtools/swagger-parser
Advanced tools
Swagger 2.0 and OpenAPI 3.0 parser and validator for Node and browsers
The @apidevtools/swagger-parser npm package is a tool that allows you to parse, validate, and dereference Swagger files (now known as OpenAPI Specifications). It supports Swagger 2.0 and OpenAPI 3.0, providing a way to ensure that API documentation is correct and adheres to the specification standards.
Parse and Validate
This feature allows you to parse and validate a Swagger/OpenAPI file, ensuring it is correct and follows the specification.
const SwaggerParser = require('@apidevtools/swagger-parser');
SwaggerParser.validate('path/to/swagger.yaml')
.then(api => {
console.log('API name: %s, Version: %s', api.info.title, api.info.version);
})
.catch(err => {
console.error(err);
});
Dereference
Dereferencing resolves all $ref pointers in the Swagger/OpenAPI document, replacing them with their referenced objects or values.
const SwaggerParser = require('@apidevtools/swagger-parser');
SwaggerParser.dereference('path/to/swagger.yaml')
.then(api => {
console.log('Dereferenced API:', api);
})
.catch(err => {
console.error(err);
});
Bundle
Bundling takes all the separate files that make up a Swagger/OpenAPI document and bundles them into a single file.
const SwaggerParser = require('@apidevtools/swagger-parser');
SwaggerParser.bundle('path/to/swagger.yaml')
.then(api => {
console.log('Bundled API:', api);
})
.catch(err => {
console.error(err);
});
This package generates swagger doc based on JSDoc comments. Unlike @apidevtools/swagger-parser, it is more focused on creating the swagger documentation from code rather than parsing and validating existing swagger files.
This package allows you to serve auto-generated swagger-ui generated API docs from express, based on a swagger.json file. It is complementary to @apidevtools/swagger-parser, which can be used to validate and parse the swagger.json file before serving it with swagger-ui-express.
This is an IBM package that validates OpenAPI specifications against the OpenAPI 3.0 or 2.0 specifications. It is similar to @apidevtools/swagger-parser in that it validates OpenAPI documents, but it is maintained by IBM and may have different validation features or standards.
$ref
pointers, including external files and URLs$ref
pointers$ref
pointers, giving you a normal JavaScript object that's easy to work with$ref
pointers to the same value always resolve to the same object instanceSwaggerParser.validate(myAPI, (err, api) => {
if (err) {
console.error(err);
}
else {
console.log("API name: %s, Version: %s", api.info.title, api.info.version);
}
});
Or use async
/await
or Promise syntax instead. The following example is the same as above:
try {
let api = await SwaggerParser.validate(myAPI);
console.log("API name: %s, Version: %s", api.info.title, api.info.version);
}
catch(err) {
console.error(err);
}
For more detailed examples, please see the API Documentation
Install using npm:
npm install @apidevtools/swagger-parser
When using Swagger Parser in Node.js apps, you'll probably want to use CommonJS syntax:
const SwaggerParser = require("@apidevtools/swagger-parser");
When using a transpiler such as Babel or TypeScript, or a bundler such as Webpack or Rollup, you can use ECMAScript modules syntax instead:
import SwaggerParser from "@apidevtools/swagger-parser";
Swagger Parser supports recent versions of every major web browser. Older browsers may require Babel and/or polyfills.
To use Swagger Parser in a browser, you'll need to use a bundling tool such as Webpack, Rollup, Parcel, or Browserify. Some bundlers may require a bit of configuration, such as setting browser: true
in rollup-plugin-resolve.
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/APIDevTools/swagger-parser.git
Install dependencies
npm install
Run the build script
npm run build
Run the tests
npm test
Swagger Parser is 100% free and open-source, under the MIT license. Use it however you want.
This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
Thanks to these awesome companies for their support of Open Source developers ❤
FAQs
Swagger 2.0 and OpenAPI 3.0 parser and validator for Node and browsers
The npm package @apidevtools/swagger-parser receives a total of 745,383 weekly downloads. As such, @apidevtools/swagger-parser popularity was classified as popular.
We found that @apidevtools/swagger-parser demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.