JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4749
  • Score
    100M100P100Q127574F
  • License Apache-2.0

Automatically validate API requests and responses with OpenAPI 3.

Package Exports

  • openapi-data-validator

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (openapi-data-validator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

OpenAPI Data Validator

Lightweight OpenAPI complete request model validator. Fast, unopinionated, full featured validator for API requests that utilize OpenAPI docs for API documentation.

npm version

Usage

It is simple, and that's all there is to it!

npm install openapi-data-validator --save
const { OpenApiValidator } = require('openapi-data-validator');
const spec = require('./openapi.json');

const openApiValidator = new OpenApiValidator({ apiSpec: spec });
const validator = openApiValidator.createValidator();

const newRequest = {
  method: 'GET',
  headers: { Authorization: 'Bearer Token' },
  query: { limit: 10 },
  body: { field: true },
  path: { user: 'userId' },

  // Matched openapi specification generic route
  route: request.route
};
await validator(newRequest);

FAQs

Why not just use AJV

AJV is the best, but there are some things that just are very OpenAPI specific that don't make sense to be in the validator. Don't need them? Great, go use AJV.

  • Top level defined Path parameters - AJV doesn't understand
  • Inline request body definitions, AJV doesn't understand schema defined in the method, it has to be in a component
  • Body Content-Type validation - Request bodies with multiple content types allowed