安装@nestjs/swagger,swagger-ui-express(底层为express)
pnpminstall--save@nestjs/swaggerswagger-ui-express然后在main.ts进行引入配置
我们看到上面所有接口都是在一起没有分类的,并且也没有请求和返回参数格式等,所以我们需要对其再进行一些配置,这里就以auth/login接口为例
来到auth.controller.ts中,引入ApiOperation,ApiTags
接下来我们再配置一下入参信息,入参信息需要在login-auth.dto.ts引入ApiProperty(定义post请求参数)进行配置
import{IsNotEmpty,Length}from'class-validator';import{ApiProperty}from'@nestjs/swagger';exportclassLoginAuthDto{@IsNotEmpty({message:'用户名不能为空',})@Length(2,10,{message:'用户名长度必须为2-10之间',})@ApiProperty({example:'admin',description:'用户名',})username:string;@IsNotEmpty()@Length(5,15,{message:'密码长度必须为5-15之间',})@ApiProperty({example:'admin',description:'密码',})password:string;}然后再看文档页面
同时可以点击tryitout按钮进行接口的调用
有了请求参数格式,还需要提供返回数据格式给前端,返回参数的定义可以用ApiOkResponse进行配置,如
import{ApiProperty}from'@nestjs/swagger';exportclassLoginResponse{@ApiProperty({example:200})code:number;@ApiProperty({example:'eyJhbGciOiJ...'})data:string;@ApiProperty({example:'请求成功'})describe:string;}然后在auth.controller.ts进行响应数据的配置
constoptions=newDocumentBuilder().setTitle('后台管理系统')//标题.setDescription('后台管理系统接口文档')//描述.setVersion('1.0')//版本.addBearerAuth().build();然后在需要认证的接口加上@ApiBearerAuth()装饰器即可,比如auth/test接口