安装依赖
yarn add @nestjs/swagger swagger-ui-express --save
配置
import { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';import { DocumentBuilder,SwaggerModule} from '@nestjs/swagger'async function bootstrap() {const app = await NestFactory.create(AppModule);const swaggerOptions = new DocumentBuilder().setTitle('文档标题').setDescription('描述信息').setVersion('0.0.1').addBasicAuth() // 鉴权?.build()// 创建文档到app服务上const document = SwaggerModule.createDocument(app,swaggerOptions)// 创建访问的路径SwaggerModule.setup('docs',app,document)await app.listen(3000);}bootstrap();
使用
import { Body, Controller, Delete, Get, Param, Post, Put, Query } from '@nestjs/common';import { ApiBody, ApiParam, ApiQuery, ApiResponse } from '@nestjs/swagger'@Controller('template')export class TemplateController {/*** get 请求* localhost:3000/template/?name=123&age=234*/@ApiQuery({ name: 'name', required: true })@ApiQuery({ name: 'role', })@ApiResponse({status: 200,description: "reqeeust ok",})@Get()get(@Query() query): object {return query}/*** post 请求* localhost:3000/template/* {* "name":123,* "age":345* }*/@ApiBody({ description: "请填写内容" })@Post()post(@Body() body): object {return body}/*** put 请求* localhost:3000/template/123* name在x-www-form-urlencoded 中传*/@ApiParam({ name: "id" })@ApiBody({ description: "请输入id" })@Put(":id")put(@Param() { id }, @Body() { name }): string {return `put id is ${id} - ${name}`}/*** delete 请求* localhost:3000/template/?id=123*/@Delete()@ApiQuery({ name: 'id', required: true })delete(@Query() { id }): string {return `del ${id}`}}
访问上面定义好的 http://localhost:3000/docs 就可以看到
