New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@nest-openapi/validator

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nest-openapi/validator

Automatic request/response validation for NestJS using your OpenAPI specifications

latest
Source
npmnpm
Version
0.1.2
Version published
Maintainers
1
Created
Source

nest-openapi-logo

@nest-openapi

OpenAPI‑first utilities for NestJS

Single source of truth · Drop‑in for NestJS · Fast by design

Ask DeepWiki License

Features

  • 🎯 Single Source of Truth — Your OpenAPI spec drives validation, serialization, mocking, and MCP tools.
  • ⚡ Fast by Design — AJV validation and fast-json-stringify serialization with caching and precompilation.
  • 🔌 Drop-in Integration — Works with existing NestJS controllers and routes
  • 🎛️ Fine-Grained Control — Per-route opt-out and custom schema overrides
  • 🚀 Platform Agnostic — Supports both Express and Fastify adapters

Packages

PackageDescriptionVersion
@nest-openapi/validatorAutomatic request/response validation using your OpenAPI specnpm
@nest-openapi/serializerHigh-performance response serialization based on your OpenAPI specnpm
@nest-openapi/mockSpec-driven mock server for generating realistic mock responsesnpm
@nest-openapi/mcpSpec-driven MCP server for exposing OpenAPI operations as toolsnpm

Quick Start

Validator

npm i @nest-openapi/validator
import { Module } from "@nestjs/common";
import { OpenAPIValidatorModule } from "@nest-openapi/validator";
import * as openApiSpec from "./openapi.json";

@Module({
  imports: [
    OpenAPIValidatorModule.forRoot({
      specSource: { type: "object", spec: openApiSpec },
    }),
  ],
})
export class AppModule {}

All routes are automatically validated. See full documentation for advanced configuration.

Serializer

npm i @nest-openapi/serializer
import { Module } from "@nestjs/common";
import { OpenAPISerializerModule } from "@nest-openapi/serializer";
import * as openApiSpec from "./openapi.json";

@Module({
  imports: [
    OpenAPISerializerModule.forRoot({
      specSource: { type: "object", spec: openApiSpec },
      responseSerialization: { enable: true, skipErrorResponses: true },
    }),
  ],
})
export class AppModule {}

Responses are automatically serialized. See full documentation for advanced configuration.

Mock

npm i @nest-openapi/mock
import { Module } from "@nestjs/common";
import { OpenAPIMockModule } from "@nest-openapi/mock";
import * as openApiSpec from "./openapi.json";

@Module({
  imports: [
    OpenAPIMockModule.forRoot({
      specSource: { type: "object", spec: openApiSpec },
      enable: process.env.NODE_ENV === "development",
      mockByDefault: true,
    }),
  ],
})
export class AppModule {}

Routes return mocked responses when enabled. See full documentation for advanced configuration.

MCP

npm i @nest-openapi/mcp
import { Module } from "@nestjs/common";
import { OpenAPIMcpModule } from "@nest-openapi/mcp";
import * as openApiSpec from "./openapi.json";

@Module({
  imports: [
    OpenAPIMcpModule.forRoot({
      specSource: { type: "object", spec: openApiSpec },
      http: { path: "/mcp" },
      executor: { baseUrl: "http://127.0.0.1:3000" },
    }),
  ],
})
export class AppModule {}

Expose OpenAPI operations as MCP tools. See full documentation for advanced configuration.

Usage Examples

Manual Validation

import { Inject, Injectable } from "@nestjs/common";
import {
  OPENAPI_VALIDATOR,
  OpenAPIValidatorService,
} from "@nest-openapi/validator";

@Injectable()
export class MyService {
  constructor(
    @Inject(OPENAPI_VALIDATOR)
    private readonly validator: OpenAPIValidatorService,
  ) {}

  validate(ctx: HttpArgumentsHost) {
    const errors = this.validator.validateRequest(ctx, { body: true });
    if (errors.length > 0) {
      // Handle validation errors
    }
  }
}

Per-Route Overrides

import { Controller, Post } from "@nestjs/common";
import { Validate } from "@nest-openapi/validator";
import { Serialize } from "@nest-openapi/serializer";

@Controller("books")
export class BooksController {
  @Post()
  @Validate({ request: { query: false }, response: true })
  @Serialize({ disable: true })
  create(@Body() dto: CreateBookDto): Book {
    return this.booksService.create(dto);
  }
}

Compatibility

  • Works with NestJS v9+
  • Supports Express and Fastify adapters

Contributing

Issues and PRs are welcome. Please check the package folders and docs before opening an issue.

License

MIT © @nest-openapi

Keywords

nest

FAQs

Package last updated on 24 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts