पाठ 31 / 34

Swagger से API Documentation

@nestjs/swagger, decorators और Nest CLI plugin से NestJS API के लिए interactive OpenAPI docs बनाएँ।

Swagger सेट करें

@nestjs/swagger आपके controllers और DTOs से OpenAPI document बनाता है और interactive UI परोसता है।

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const config = new DocumentBuilder()
    .setTitle('Users API')
    .setVersion('1.0')
    .addBearerAuth()
    .build();
  SwaggerModule.setup('docs', app, SwaggerModule.createDocument(app, config));
  await app.listen(3000);
}

Decorators से DTO properties और operations का वर्णन करें।

export class CreateUserDto {
  @ApiProperty({ example: 'ada@example.com' })
  @IsEmail()
  email: string;
}

@ApiTags('users')
@Controller('users')
export class UsersController {
  @Post()
  @ApiCreatedResponse({ description: 'User created' })
  create(@Body() dto: CreateUserDto) {}
}

अधिकांश DTO metadata अपने-आप पाने के लिए Nest CLI Swagger plugin चालू करें, और docs UI केवल non-production environments में दिखाएँ।