swagger-spec-validator

Validate an OpenAPI/Swagger API specification using the swagger.io online validator.

Usage no npm install needed!

<script type="module">
  import swaggerSpecValidator from 'https://cdn.skypack.dev/swagger-spec-validator';
</script>

README

OpenAPI/Swagger Specification Validator

Build Status: Linux Build Status: Windows Coverage Dependency Status Supported Node Version Version on NPM

Validate an OpenAPI/Swagger v2 or v3 API specification against the OpenAPI Specification using the swagger.io online validator.

The validation performed by this module differs from the validation performed by swagger-cli. swagger-cli uses swagger-parser for validation, which is a pure JavaScript implementation that can be used offline. This module relies on the validator hosted at swagger.io which uses Java-based parser and validator implementations. Therefore, it requires Internet access to use and requires significantly less code to be installed as a result.

Introductory Example

To use swagger-spec-validator from the command line, simply invoke it with the specification files to validate as arguments:

$ swagger-spec-validator swagger.yaml

If no arguments are given, the specification will be read from stdin.

swagger-spec-validator can be used as a library as follows:

const swaggerSpecValidator = require('swagger-spec-validator');
swaggerSpecValidator.validateFile('swagger.yaml')
  .then((result) => {
    if (Object.keys(result).length > 0) {
      console.log('Invalid.');
    } else {
      console.log('Valid!');
    }
  })
  .catch(err => console.error('Unable to validate: ' + err));

Installation

This package can be installed using npm, either globally or locally, by running:

npm install swagger-spec-validator

Recipes

More examples can be found in the test specifications.

API Docs

To use this module as a library, see the API Documentation.

Contributing

Contributions are appreciated. Contributors agree to abide by the Contributor Covenant Code of Conduct. If this is your first time contributing to a Free and Open Source Software project, consider reading How to Contribute to Open Source in the Open Source Guides.

If the desired change is large, complex, backwards-incompatible, can have significantly differing implementations, or may not be in scope for this project, opening an issue before writing the code can avoid frustration and save a lot of time and effort.

License

This project is available under the terms of the MIT License. See the summary at TLDRLegal.