What is openapi-schema-validator?
The openapi-schema-validator npm package is used to validate OpenAPI (formerly known as Swagger) schemas. It ensures that the OpenAPI documents adhere to the OpenAPI Specification, which is crucial for API documentation, client generation, and server stub generation.
What are openapi-schema-validator's main functionalities?
Validate OpenAPI Schema
This feature allows you to validate an OpenAPI schema against the OpenAPI Specification. The code sample demonstrates how to create a validator instance, validate a sample schema, and handle validation errors.
const OpenAPISchemaValidator = require('openapi-schema-validator').default;
const schema = {
openapi: '3.0.0',
info: {
title: 'Sample API',
version: '1.0.0'
},
paths: {}
};
const validator = new OpenAPISchemaValidator({ version: 3 });
const result = validator.validate(schema);
if (result.errors.length > 0) {
console.error('Schema validation errors:', result.errors);
} else {
console.log('Schema is valid!');
}
Other packages similar to openapi-schema-validator
swagger-parser
Swagger Parser is a powerful tool for validating, parsing, and dereferencing Swagger and OpenAPI definitions. It offers more comprehensive functionality compared to openapi-schema-validator, including resolving $ref pointers and bundling multiple files into a single schema.
ajv
AJV (Another JSON Schema Validator) is a highly efficient JSON schema validator that can be used to validate OpenAPI schemas as well. While it is not specifically designed for OpenAPI, it is highly performant and supports JSON Schema draft-07, which is used by OpenAPI 3.0.
openapi-backend
OpenAPI Backend is a framework for building and validating APIs based on OpenAPI definitions. It provides more than just schema validation; it also includes request validation, response validation, and routing based on OpenAPI definitions.
openapi-schema-validator
A validator for OpenAPI documents.
Supported OpenAPI versions
v3
v2
(formerly known as Swagger V2)
Document examples and full specs:
Highlights
- Validate openapi documents against openapi schema documents.
- Uses jsonschema under the hood.
- Performant.
- Currently supports type definitions included in the
definitions
property of the
provided openapi document. - Extensively tested.
- Small footprint.
Huge thank you to the gnostic project for building up a 3.0.0 JSON schema.
Example
var OpenAPISchemaValidator = require('openapi-schema-validator').default;
var validator = new OpenAPISchemaValidator({
version: 2,
extensions: {
}
});
console.log(validator.validate(apiDoc));
version
number openapi document schema version to use (2 or 3).
- 2 -
openapi-2.0.0
(default) - 3 -
openapi-3.0.0
see here for example results.
API
.validate(apiDoc)
apiDoc
object is any api document you wish to validate.
LICENSE
The MIT License (MIT)
Copyright (c) 2018 Kogo Software LLC
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.