NestJS是一个基于Node.js的开发框架,用于构建可扩展的、高效的服务器端应用程序。Swagger是一种用于描述、构建、测试和文档化 RESTful Web服务的工具。
在NestJS中公开参数到Swagger中,可以通过使用装饰器@ApiProperty()
和@ApiBody()
来完成。以下是一种常见的方法:
npm install @nestjs/swagger swagger-ui-express
@ApiProperty()
装饰器来定义参数。例如,在一个POST请求的控制器方法中,可以这样定义参数:import { ApiProperty } from '@nestjs/swagger';
// ...
@Post()
@ApiProperty({ description: '用户登录' })
async login(@Body() loginDto: LoginDto) {
// ...
}
@ApiOperation()
装饰器来定义操作的描述。例如,在控制器类中添加以下代码:import { ApiOperation } from '@nestjs/swagger';
// ...
@ApiTags('用户')
@Controller('users')
export class UsersController {
// ...
@ApiOperation({ summary: '用户登录' })
@Post()
async login(@Body() loginDto: LoginDto) {
// ...
}
}
main.ts
)中添加Swagger的配置。例如:import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
// ...
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// 配置Swagger
const config = new DocumentBuilder()
.setTitle('API 文档')
.setDescription('API 文档描述')
.setVersion('1.0')
.addTag('用户')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document);
await app.listen(3000);
}
bootstrap();
现在,当你启动应用程序并访问http://localhost:3000/api
时,将会看到生成的Swagger文档,并且你定义的参数和操作描述也会在文档中显示出来。
对于NestJS的相关文档和腾讯云产品推荐,可以参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云