赞
踩
OpenAPI(Swagger)规范是一种用于描述 RESTful API 的强大定义格式。 Nest 提供了一个专用模块来使用它。
npm安装
npm install --save @nestjs/swagger swagger-ui-express
yarn 安装
yarn add @nestjs/swagger swagger-ui-express
使用 SwaggerModule 类初始化 Swagger
main.ts
import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; async function bootstrap() { const app = await NestFactory.create(AppModule); const options = new DocumentBuilder() .setTitle('User example')//标题 .setDescription('The user API description')//文档描述 .setVersion('4.0')//文档版本号 .addTag('user')//标签名 .build(); const document = SwaggerModule.createDocument( app,//应用程序实例 options//Swagger 选项对象 ); SwaggerModule.setup( 'api',//api就是Swagger UI 的挂载路径 app,//应用程序实例 document//上面已经实例化的文档对象 ); await app.listen(3000); } bootstrap();
应用程序运行时,打开浏览器并导航到 http://localhost:3000/api
。 你应该可以看到 Swagger UI
SwaggerModule 在路由处理程序中查找所有使用的 @Body() , @Query() 和 @Param() 装饰器来生成 API 文档。该模块利用反射创建相应的模型定义
@Post('add')// [Post请求] 路由:/user/add
async findOne(@Body() param: User) {
// 使用userService的add方法
return this.userService.add(param)
}
基于 User,将创建模块定义:
用@ApiProperty() 装饰器对其进行注释后
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; import { ApiProperty } from '@nestjs/swagger'; @Entity() export class User { @ApiProperty() @PrimaryGeneratedColumn() id: number; @ApiProperty({ description: '名称', type: String }) @Column() name: string; @ApiProperty({ description: '状态', default: '1' }) @Column({ default: '1' }) status: string; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。