Skip to content

cdimascio/express-openapi-validator

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
August 26, 2023 14:41
November 12, 2023 13:49
December 2, 2019 20:52
March 19, 2019 18:30
April 2, 2020 14:33
March 25, 2019 22:42
November 12, 2023 14:36
September 21, 2020 21:09
March 19, 2019 22:33
April 30, 2023 17:04
December 25, 2020 13:45
November 21, 2023 11:50
November 21, 2023 11:50
July 15, 2019 10:02

express-openapi-validator

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 wiki for complete documenation

License

MIT

Buy Me A Coffee