Nest框架中集成使用Swagger示例说明

 更新时间:2022年08月01日 08:36:40   作者:六号积极分子  
这篇文章主要为大家介绍了Nest框架中集成使用Swagger的示例说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Swagger

Swagger 是一个能够生成、描述、调用和可视化的 RESTful 风格的 Web 服务。主要是对 REST API 接口自动生成接口说明文档。生成的接口文档也是直接在线测试。即在可视化的Web 界面上直接输入参数对应的值就可以在线测试接口。

Nest 框架也提供了一个专门用于支持 Swagger 规范的模块。

Nest 中使用 Swagger

安装

首先需要安装所需要的 swagger 包

 npm install --save @nestjs/swagger swagger-ui-express

初始化 Swagger

在 Nest 项目的 main.ts 文件中,使用 SwaggerModule 类初始化 Swagger

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
async function bootstrap() {
    const options = new DocumentBuilder()
    .setTitle('Api example')
    .setDescription('The API description')
    .setVersion('1.0')
    .addTag('Api/V1')
    .build();
  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('api', app, document);
}
  • DocumentBuilder : 先new 一个 DocumentBuilder 实例,主要是为构建符合 OpenApi规范的基础文档,从以上Demo中可以看到可以对 Swagger 文档设置标题、描述、版本号、tag的相关属性。
  • createDocument():用于创建文档。该方法主要接收两个参数:一个是 app 应用程序实例,一个是 Swagger 选项对象。

创建完文件之后,即可调用 setup 方法。

配置完之后,就可以在运行项目,通过访问 http://localhost:3000/api, 就可以打开 Swagger 的可视化界面,其中就会展示所有的接口列表。

接口中使用

所有的配置都已就位,接下来就是将每个接口都配置上 swagger ,以便接口能够展示在可视化 web界面上。

首先需要引用可支持 Swagger 的模块

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

在使用相关支持Swagger 的装饰器方法,比如 @ApiProperty() 装饰器注释所有的属性。

@ApiTags('user')
@Controller('api/v1/user')
export class UserController {
    @Post()
    @ApiCreatedResponse({
    description: 'The record has been successfully created.',
    type: User
    })
    async CreateUser(@Body() userDto:UserDto){
      // doing something
    }
}
export class UserDto {
    @ApiProperty()
    name: string;
    @ApiProperty()
    age: number
}

ApiTags :将控制器附加到特定的标签

@ApiResponse():自定义 Http 响应

@ApiProperty() 为请求指定返回模型,创建 Dto 类并使用装饰器注释所有的属性

这样设置之后,运行项目,访问 swagger 可视化界面就可以看到界面,并且在界面上测试该接口。

参考资料:docs.nestjs.cn/9/recipes?i…

以上就是Nest框架中集成使用Swagger示例说明的详细内容,更多关于Nest框架集成Swagger的资料请关注脚本之家其它相关文章!

相关文章

  • typescript type 分配条件类型示例详解

    typescript type 分配条件类型示例详解

    这篇文章主要为大家介绍了typescript type 分配条件类型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • typescript type类型使用梳理总结

    typescript type类型使用梳理总结

    这篇文章主要为大家介绍了typescript type类型使用梳理总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • TypeScript使用strictnullcheck实战解析

    TypeScript使用strictnullcheck实战解析

    这篇文章主要为大家介绍了TypeScript使用strictnullcheck实战解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • TypeScript类型编程中的extends和infer示例解析

    TypeScript类型编程中的extends和infer示例解析

    这篇文章主要为大家介绍了TypeScript类型编程中的extends和infer示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • TypeScript十大排序算法插入排序实现示例详解

    TypeScript十大排序算法插入排序实现示例详解

    这篇文章主要为大家介绍了TypeScript十大排序算法插入排序实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • TypeScript数据结构栈结构Stack教程示例

    TypeScript数据结构栈结构Stack教程示例

    这篇文章主要为大家介绍了TypeScript数据结构栈结构Stack教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • TypeScript开发HapiJS应用详解

    TypeScript开发HapiJS应用详解

    这篇文章主要为大家介绍了TypeScript开发HapiJS应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • TypeScript类型级别和值级别示例详解

    TypeScript类型级别和值级别示例详解

    这篇文章主要为大家介绍了TypeScript类型级别和值级别示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 高级前端面试手写扁平数据结构转Tree

    高级前端面试手写扁平数据结构转Tree

    这篇文章主要为大家介绍了高级前端面试手写扁平数据结构转Tree示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Typescript extends 关键字继承类型约束及条件类型判断实现示例解析

    Typescript extends 关键字继承类型约束及条件类型判断实现示例解析

    这篇文章主要介绍了Typescript extends 关键字继承类型约束及条件类型判断实现示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论