Nestjs documentation
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/nestjs-documentation
🧠The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill nestjs-documentationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Swagger automation and Generic response documentation. Use when generating OpenAPI/Swagger documentation or documenting NestJS API responses. (triggers: main.ts, **/*.dto.ts, DocumentBuilder, SwaggerModule, ApiProperty, ApiResponse)
SKILL.md
2.7 KB, as published. Nobody here has run it
OpenAPI & Documentation
Priority: P2 (MAINTENANCE)
Automated API documentation and OpenAPI standards.
- Automation: ALWAYS use the Nest CLI Plugin (
@nestjs/swagger/plugin).- Benefit: Auto-generates
@ApiPropertyfor DTOs and response types. Reduces boilerplate by 50%. - Config:
nest-cli.json->"plugins": ["@nestjs/swagger"].
- Benefit: Auto-generates
- Versioning: Maintain separate Swagger docs for
v1,v2if breaking changes occur.
Response Documentation
- Strictness: Every controller method must have
@ApiResponse({ status: 200, type: UserDto }). - Generic Wrappers: Define
ApiPaginatedResponse<T>decorators to document genericPageDto<T>returns properly (Swagger doesn't handle generics well by default).- Technique: Use
ApiExtraModels+getSchemaPath()in the custom decorator to handle the genericTref.
- Technique: Use
Advanced Patterns
- Polymorphism: Use
@ApiExtraModelsandgetSchemaPathforoneOf/anyOfunion types. - File Uploads: Document
multipart/form-dataexplicitly.- Decorator:
@ApiConsumes('multipart/form-data'). - Body:
@ApiBody({ schema: { type: 'object', properties: { file: { type: 'string', format: 'binary' } } } }).
- Decorator:
- Authentication: Specify granular security schemes per route/controller.
- Types:
@ApiBearerAuth()or@ApiSecurity('api-key')(Must matchDocumentBuilder().addBearerAuth()).
- Types:
- Enums: Force named enums for reusable schema references.
- Code:
@ApiProperty({ enum: MyEnum, enumName: 'MyEnum' }).
- Code:
Operation Grouping
-
Tags: Mandatory
@ApiTags('domains')on every Controller to group endpoints logically. -
Multiple Docs: generate separate docs for different audiences (e.g. Public vs Internal).
SwaggerModule.createDocument(app, config, { include: [PublicModule] }); // /api/docs SwaggerModule.createDocument(app, adminConfig, { include: [AdminModule] }); // /admin/docs
Self-Documentation
- Compodoc: Use
@compodoc/compodocto generate static documentation of the module graph, services, and dependencies.- Use Case: New developer onboarding and architectural review.
Anti-Patterns
- No missing @ApiResponse: Every controller method must declare its response type and status code.
- No /docs in production: Disable Swagger in production to prevent API schema exposure.
- No manual @ApiProperty everywhere: Use the Nest CLI Swagger plugin to auto-generate from DTOs.