1.0.5 • Published 4 months ago

@summit-credit-union/validation-middleware v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Validation Middleware Package

A reusable middleware for validating incoming requests against an OpenAPI specification using AJV (Another JSON Schema Validator). This package can be easily integrated into any Express application to ensure that requests conform to the defined API schema.

Features

  • Validates request bodies, query parameters, path parameters, headers, and cookies.
  • Supports custom formats and schemas.
  • Provides detailed error messages for invalid requests.
  • Easy to integrate with existing Express applications.

Installation

To install the package, run:

npm i @summit-credit-union/validation-middleware

Usage

  1. Import the ValidationMiddleware class in your Express application:
import express from 'express';
import { ValidationMiddleware } from '@summit-credit-union/validation-middleware';

const app = express();
const validationMiddleware = new ValidationMiddleware(apiSpec);
  1. Use the middleware in your routes:
app.use(validationMiddleware.validate.bind(validationMiddleware));
  1. Define your OpenAPI specification and ensure it is accessible to the middleware.

Example

Here is a simple example of how to set up the middleware:

import express from 'express';
import { ValidationMiddleware } from '@summit-credit-union/validation-middleware';
import openapiSpecification from './path/to/openapi/specification';

const app = express();
const validationMiddleware = new ValidationMiddleware(openapiSpecification, process.env.NODE_ENV === 'development');

app.use(express.json());
app.use(validationMiddleware.validate.bind(validationMiddleware));

app.get('/api/example', (req, res) => {
  res.send('This is a valid response!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Usage in server.ts

Here is an example of how to use the middleware in server.ts:

import express from 'express';
import { ValidationMiddleware } from '@summit-credit-union/validation-middleware';
import openapiSpecification from './path/to/openapi/specification';

const app = express();
const validationMiddleware = new ValidationMiddleware(openapiSpecification);

app.use(express.json());
app.use((req, res, next) => {
  validationMiddleware.validate(req, res, next);
});

app.get('/api/example', (req, res) => {
  res.send('This is a valid response!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Development Mode

The ValidationMiddleware constructor accepts an optional isDevelopment flag. When set to true, detailed error messages will be included in the response. This is useful for debugging during development. By default, this flag is set to false.

const validationMiddleware = new ValidationMiddleware(apiSpec, true);

API Specification

Make sure to provide a valid OpenAPI specification that the middleware can use for validation. The specification should define the paths, parameters, and schemas that your API will use.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

1.0.5

4 months ago

1.0.4

4 months ago

1.0.3

4 months ago

1.0.1

4 months ago

1.0.0

4 months ago