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);
  }
}

效果如图所示

目录
相关文章
|
1天前
|
前端开发 Java API
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
本文提供了一份详细的Swagger接口文档生成工具的使用教程,包括了导入依赖、配置类设置、资源映射、拦截器配置、Swagger注解使用、生成接口文档、在线调试页面访问以及如何设置全局参数(如token),旨在帮助Java开发者快速上手Swagger。
37 0
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
|
3月前
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
5月前
|
前端开发 应用服务中间件 nginx
使用swagger和knife4j生成的接口文档在浏览器中输入地址后报404错误
使用swagger和knife4j生成的接口文档在浏览器中输入地址后报404错误
349 0
|
前端开发 数据可视化 Java
Swagger 接口文档 | knife4j 增强方案
Swagger 接口文档 | knife4j 增强方案
175 0
Swagger 接口文档 | knife4j 增强方案
|
运维 前端开发 JavaScript
Swagger生成接口文档
Swagger生成接口文档
160 0
|
安全 数据可视化 Java
Swagger 自动生成 Api 文档:简化接口文档编写
自动生成 API 文档的好处不言而喻,它可以提供给你的团队或者外部协作者,方便 API 使用者准确地调用到你的 API。为了降低手动编写文档带来的错误,很多 API 开发者会偏向于寻找一些好的方法来自动生成 API 文档。
Swagger 自动生成 Api 文档:简化接口文档编写
|
存储 SQL Java
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(上)
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(上)
92 1
|
JSON Java API
SpringBoot集成Swagger2自动生成API接口文档
SpringBoot集成Swagger2自动生成API接口文档
169 0
|
前端开发 数据可视化 安全
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(下)
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(下)
175 0