Skip to content

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

License

Notifications You must be signed in to change notification settings

kevinoid/swagger-spec-validator

Folders and files

NameName
Last commit message
Last commit date
Aug 18, 2018
Feb 6, 2025
Jun 9, 2021
Feb 24, 2016
Nov 3, 2019
Mar 3, 2025
Dec 22, 2020
Feb 11, 2016
May 8, 2023
Mar 10, 2020
Nov 17, 2022
Feb 11, 2016
Apr 11, 2023
Oct 2, 2023
Nov 2, 2024
May 23, 2020
May 23, 2020
Mar 24, 2025

Repository files navigation

OpenAPI/Swagger Specification Validator

Build Status 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.