express-openapi-validator

Automatically validate API requests and responses with OpenAPI 3 and Express.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
express-openapi-validator
8661725.1.63 months ago5 years agoMinified + gzip package size for express-openapi-validator in KB

Readme

๐Ÿฆ‹ express-openapi-validator
docs.
example workflow All Contributors Coverage Status Codacy Badge Gitpod Ready-to-Code
An OpenApi validator for ExpressJS that automatically validates API requests and responses using an OpenAPI 3 specification.


๐Ÿฆ‹express-openapi-validator is an unopinionated library that integrates with new and existing API applications. express-openapi-validator lets you write code the way you want; it does not impose any coding convention or project layout. Simply, install the validator onto your express app, point it to your OpenAPI 3 specification, then define and implement routes the way you prefer. See an example.
Features:
  • โœ”๏ธ request validation
  • โœ”๏ธ response validation (json only)
  • ๐Ÿ‘ฎ security validation / custom security functions
  • ๐Ÿ‘ฝ 3rd party / custom formats / custom data serialization-deserialization
  • ๐Ÿงต optionally auto-map OpenAPI endpoints to Express handler functions
  • โœ‚๏ธ \$ref support; split specs over multiple files
  • ๐ŸŽˆ file upload

Docs:
GitHub stars Twitter URL
NestJS Koa and Fastify now available! ๐Ÿš€

Install

npm install express-openapi-validator

## latest beta
npm install express-openapi-validator@4.14.0-beta.1

Usage

  1. Require/import the openapi validator

const OpenApiValidator = require('express-openapi-validator');

or
import * as OpenApiValidator from 'express-openapi-validator';

  1. Install the middleware

app.use(
  OpenApiValidator.middleware({
    apiSpec: './openapi.yaml',
    validateRequests: true, // (default)
    validateResponses: true, // false by default
  }),
);

  1. Register an error handler

app.use((err, req, res, next) => {
  // format error
  res.status(err.status || 500).json({
    message: err.message,
    errors: err.errors,
  });
});

Important: Ensure express is configured with all relevant body parsers. Body parser middleware functions must be specified prior to any validated routes. See an example.

Documentation

See the doc
for complete documenation
deprecated legacy doc

License

MIT
Buy Me A Coffee