23_Swagger接口文档

简介: 23_Swagger接口文档

nest.js提供了两个包用来生成Swagger接口文档,文档用于描述Restful API风格的接口

  1. 安装两个包

npm install  @nestjs/swagger swagger-ui-express

  1. 在main.ts里进行文档生成配置
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule);
  app.use(cors());
  // 创建接口文档
  const options = new DocumentBuilder()
    // 设置文档标题
    .setTitle('Coolboost接口文档')
    // 设置文档描述
    .setDescription('描述======>')
    // 设置文档版本
    .setVersion('1.0')
    // 创建文档选项
    .build();
  // 基于app和文档选项生成文档
  const document = SwaggerModule.createDocument(app, options);
  // 定义文档展示路径
  SwaggerModule.setup('api-docs',app,document)
  await app.listen(3000);
}
bootstrap();

访问localhost:3000/api-docs即可看到文档

常用API

  1. ApiTags

用于对API进行分组,方便查看

@ApiTags('登录接口')

  1. ApiOperation

用于描述接口信息,起到提示作用

summary是简要描述,可以直接看到,description是详细描述,需要点开对应标签查看

@ApiOperation({summary: '测试admin',description: '请求该接口需要amdin权限',})

  1. ApiParam

用于需要传递Param参数的场合,在文档中输入参数后会随请求一起带到接口

第一个参数是传递参数的名称,第二个是传递参数的描述,第三个是参数是否为必填

@ApiParam({ name: 'roles', description: '用户权限', required: true })

  1. ApiQuery

使用方法和ApiParam类似,唯一不同的是参数将以query的形式进行传递

第一个参数是传递参数的名称,第二个是传递参数的描述,第三个是参数是否为必填

@ApiQuery({ name: 'roles', description: '用户权限', required: true })

  1. ApiResponse

在文档中写入响应状态,起到提示作用

第一个参数是响应状态码,第二个是描述

@ApiResponse({ status: 403, description: '请求失败' })

  1. ApiProperty

结合DTO使用,可以起到示例传入参数的作用

import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString, Length, IsNumber } from 'class-validator';
export class CreateLoginDto {
  // 1
  @ApiProperty({example:'诺航同学'})
  name: string;
  // 2
  @ApiProperty()
  age: number;
}

如果像1处那样写,文档中的提示为name:诺航同学

如果像2处那样写,文档中的提示为age:string

  1. ApiBearerAuth

向文档中的特定API添加验证信息,请求头会多带一个token。需要现在main.ts里使用验证

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
const options = new DocumentBuilder()
    .setTitle('Coolboost接口文档')
    .setDescription('描述======>')
    .addBearerAuth()    // 多加这一句
    .setVersion('1.0')
    .build();

接下来在controller中使用即可

import {
  ApiOperation,
  ApiTags,
  ApiParam,
  ApiQuery,
  ApiResponse,
  ApiBearerAuth,
} from '@nestjs/swagger';
@ApiTags('登录接口')
@ApiBearerAuth()  // 在这里使用
@Controller('login')
export class LoginController {
  constructor(private readonly loginService: LoginService) {}
  @Post()
  create(@Body() createLoginDto: CreateLoginDto) {
    return this.loginService.create(createLoginDto);
  }
}

效果如图所示

目录
相关文章
|
安全 Java API
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
这篇文章介绍了Swagger,它是一组开源工具,围绕OpenAPI规范帮助设计、构建、记录和使用RESTAPI。文章主要讨论了Swagger的主要工具,包括SwaggerEditor、SwaggerUI、SwaggerCodegen等。然后介绍了如何在Nest框架中集成Swagger,展示了安装依赖、定义DTO和控制器等步骤,以及如何使用Swagger装饰器。文章最后总结说,集成Swagger文档可以自动生成和维护API文档,规范API标准化和一致性,但会增加开发者工作量,需要保持注释和装饰器的准确性。
862 0
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
|
缓存 iOS开发
如何在Xcode删除某个版本的IOS模拟器
如何在Xcode删除某个版本的IOS模拟器
2280 1
|
网络协议 开发工具 git
解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese
在使用 Git/Git小乌龟 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 git clone 或 git pull 等操作时出现 “fatal: unable to access ‘https://github.com/…/.git’: Recv failure Connection was reset” 的报错。这个问题通常是由网络连接问题或代理设置不正确导致的。在我的个人使用经验中,我亲自尝试了四种方法,它们都能够有效地解决这个报错。个人比较推荐方法二。
9684 1
|
人工智能 缓存 大数据
5G前蜂窝移动系统和业务概述 | 带你读《5G UDN(超密集网络)技术详解》之二
蜂窝移动网络经历了 1G、2G、3G、4G、5G 五大阶段或时代,伴 随着 ICT 技术和移动市场业务应用的不断快速变化,蜂窝移动系 统的形态和架构也经历了相应的变化,或演进或变革,或渐变或剧烈。 深入了解 5G 前蜂窝移动历史,有助于理解当下 5G 蜂窝网络的核心特 点和未来发展趋势。
5G前蜂窝移动系统和业务概述 | 带你读《5G UDN(超密集网络)技术详解》之二
|
前端开发 JavaScript
使用 MobX 优化 React 代码
使用 MobX 优化 React 代码
313 0
|
6天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1623 116
|
7天前
|
人工智能 程序员 API
Codex 接入 DeepSeek-V4-Flash:还能补上识图,提供两套方案
Codex 接入 DeepSeek-V4-Flash 怎么配?本文覆盖 CLI 与桌面端,再用 qwen3-vl-flash 补识图,两套方案可直接照做
1102 5
|
13天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1954 9
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
7天前
|
编解码 人工智能 安全
2核4G/4核8G/8核16G阿里云服务器如何选择实例?经济型e、通用算力型u2i与计算型c9i选哪个?
本文介绍了阿里云2核4G、4核8G、8核16G三档主流配置下经济型e、通用算力型u2i和计算型c9i三种实例的最新活动价格与适用场景。同配置下三者价差显著,以2核4G为例,经济型e低至599.93元/年,计算型c9i则高达1742.08元/年。文章详细解析了各实例的性能定位:经济型e适合轻负载入门场景,u2i兼顾稳定算力与性价比,c9i凭借第9代至强处理器与芯片级安全能力支撑高性能业务。同时提示用户可叠加满减优惠券享受折上折,建议根据业务负载与预算综合决策。
538 112

热门文章

最新文章