nestjs-dev-docs
v1.0.0
Published
Self-documenting API with interactive testing UI for NestJS
Maintainers
Readme
nestjs-dev-docs
Self-documenting API with an interactive testing UI for NestJS. Automatically scans your controllers and exposes documentation at a configurable path, with a built-in request tester (Postman-like).
Installation
npm install nestjs-dev-docs
# or
yarn add nestjs-dev-docsPeer dependencies (required in your app): @nestjs/common, @nestjs/core, reflect-metadata.
Optional: class-validator + class-validator-jsonschema for richer DTO schema extraction.
Usage
Import and register the module in your app (e.g. AppModule):
import { Module } from '@nestjs/common';
import { DevDocsModule } from 'nestjs-dev-docs';
@Module({
imports: [
DevDocsModule.register({
path: '/api/docs',
}),
],
})
export class AppModule {}Then open http://localhost:3000/api/docs (or your app URL + path) to view the documentation and test endpoints.
Configuration options
| Option | Type | Default | Description |
|-------------------|---------|---------|--------------------------------------------------|
| path | string | required | Base path for the docs UI and API (e.g. /api/docs) |
| title | string | 'API' | Title used in the UI and OpenAPI export |
| baseUrl | string | from request | Base URL for the request proxy (e.g. http://localhost:3000) |
| darkModeDefault | boolean | - | Reserved for future UI default theme |
Documenting endpoints
Use the @Doc() decorator to add a summary and description:
import { Doc } from 'nestjs-dev-docs';
@Controller('users')
export class UsersController {
@Doc({ summary: 'Create User', description: 'Creates a new user in the system' })
@Post()
create(@Body() dto: CreateUserDto) {
return this.usersService.create(dto);
}
}Features
- Automatic controller scanning – Discovers all controllers and routes (GET, POST, PUT, PATCH, DELETE) and parameters (@Body, @Query, @Param, @Headers).
- Interactive request tester – Send requests from the UI with body, query, headers, and path params; view status, time, and response body.
- Auth testing – Bearer token and API key inputs; values are sent with proxied requests.
- DTO schema – Infers request body and query shape from classes (reflection and optional class-validator-jsonschema).
- Export OpenAPI – Download OpenAPI 3.0 JSON from the UI.
- Copy cURL – Copy the last request as a cURL command.
- Request history – Last requests stored in the browser (localStorage).
- Dark / light mode – Toggle with persistence.
API (served under your path)
GET /– Documentation UI (HTML).GET /spec– JSON list of controllers and endpoints.POST /request– Proxy for the request tester (body:path,method,body,query,headers,pathParams).GET /openapi.json– OpenAPI 3.0 JSON.
License
MIT
