nestjs中swagger的基本使用

安装

$ npm install --save @nestjs/swagger swagger-ui-express
//如果使用fastify,则必须安装fastify-swagger而不是swagger-ui-express:
$ npm install --save @nestjs/swagger fastify-swagger

朴素使用

main.ts

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

async function bootstrap() {
const app = await NestFactory.create(AppModule); const config = new DocumentBuilder()
.setTitle('this is a title')
.setDescription('this is a description')
.setVersion('1.0')
.addTag('cat')
.addTag('dog')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document); await app.listen(3000);
}

重点:用ApiTags装饰每一个Controller,才能把它们按名字分类展示

import { ApiTags } from '@nestjs/swagger';

app.controller.ts

@ApiTags()
@Controller()
export class AppController { ... }

cat.controller.ts

@ApiTags('cat')
@Controller('cat')
export class CatController { ... }

dog.controller.ts

@ApiTags('dog')
@Controller('dog')
export class DogController { ... }

如上便得到如下效果:

通过装饰器对接口更详细地说明

import { Controller, Get, Param } from '@nestjs/common';
import { ApiTags, ApiParam } from '@nestjs/swagger'; @ApiTags('dog')
@Controller('dog')
export class DogController {
@Get('/onedog/:name')
// 通过ApiParam装饰器,来描述接口需要哪些参数
@ApiParam({ name: 'name', type: String, description: '姓名' })
@ApiParam({ name: 'gender', type: String, description: '性别' })
aGetRequest(
@Param('name') name: string,
@Param('gender') gender: string
): string {
return `a ${gender} named ${name} has lunched a get request`
}
}

如上便得到如下效果:



除了ApiParam装饰器外还有很多别的装饰器可用,可自行百度,用法大同小异

最新文章

  1. web前端各大技术都能实现什么功能
  2. hibernate配置文件详细解析
  3. Getting Started With Hazelcast 读书笔记(第四章)
  4. AndroidAnnotations配置--Android studio
  5. 使用windbg查看DependencyObject的属性
  6. Bitset[HDU2051]
  7. filesort是什么意思?
  8. Intellij IDEA13 创建多模块Maven项目
  9. 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
  10. TCP协议和UDP协议的区别
  11. Android的UI调优
  12. P2515 [HAOI2010]软件安装
  13. Android版数据结构与算法(七):赫夫曼树
  14. java多线程--AtomicReference
  15. Mongo 常用操作
  16. 重新设计导出API
  17. python基础知识回顾之字符串
  18. Android调用相机拍摄照片并显示到 ImageView控件中
  19. FastDFS配置 ***
  20. BZOJ1935或洛谷2163 [SHOI2007]园丁的烦恼

热门文章

  1. JZOJ.4724 斐波那契
  2. XAMPP环境下数据库密码保存文件目录(数据库密码忘记)
  3. Cobaltstrike —— shellcode分析(一)
  4. [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  5. $(...).bootstrapTable is not a function (已解决)
  6. 详解http和https
  7. openfoam 智能指针探索
  8. 05for循环
  9. Spring Cloud Stream 消息驱动
  10. 【补题】The 2022 SDUT Summer Trials