【Nest教程】集成Swagger自动生成接口文档

简介: 【Nest教程】集成Swagger自动生成接口文档

现如今,前后台开发分离已成为一种标准,后台负责提供api,其余功能交给前台来实现,但是项目开发中的沟通成本也随之提高,这部分成本主要体现在前台需要接口文档,但是后台可能没时间写或者其他原因,导致功能对接缓慢。Swagger很好的解决了这个问题,它可以动态生成Api接口文档,今天我们简单说下在Nest项目中集成Swagger。

1 安装Swagger

yarn add @nestjs/swagger swagger-ui-express --save

复制


2 配置Swagger

需要在src目录下main.ts文件中配置及构建出口,内容如下:

import { NestFactory } from '@nestjs/core';
import { ValidationPipe } from '@nestjs/common';
import { NestExpressApplication } from '@nestjs/platform-express';
import { AppModule } from './app.module';
// 过滤器
import { HttpExceptionFilter } from './filters/http-exception.filter';
// 自定义拦截器
import { TransformInterceptor } from './interceptor/transform.interceptor';
// api文档插件
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule);
  app.useGlobalFilters(new HttpExceptionFilter());
  app.useGlobalInterceptors(new TransformInterceptor());
  app.useGlobalPipes(new ValidationPipe()); //开启一个全局验证管道
  const options = new DocumentBuilder()
    .setTitle('接口文档')
    .setDescription('系统接口文档') // 文档介绍
    .setVersion('1.0.0') // 文档版本
    .build();
  // 为了创建完整的文档(具有定义的HTTP路由),我们使用类的createDocument()方法SwaggerModule。此方法带有两个参数,分别是应用程序实例和基本Swagger选项。
  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('/api', app, document);
  await app.listen(3000);
}
bootstrap();

复制

这里面我们只关注10、13、17到24行,

DocumentBuilder 有助于构建符合 OpenAPI 规范的基础文档。它提供了几种允许设置诸如标题,描述,版本等属性的方法。为了创建一个完整的文档(使用已定义的 HTTP 路由),我们使用 SwaggerModule 类的 createDocument() 方法。此方法接收两个参数,即应用程序实例和 Swagger 选项对象。

一旦创建完文档,我们就可以调用 setup() 方法。它接收:

  1. Swagger UI 的挂载路径
  2. 应用程序实例
  3. 上面已经实例化的文档对象


3 启动项目

yarn start

复制

应用程序运行时,打开浏览器并导航到 http://localhost:3000/api 。你应该可以看到 Swagger UI

image.png


4 其他配置项

还提供很多配置项,如ApiQuery、ApiBody、ApiParam、ApiHeader、ApiHeaders等,这里就不一一介绍了,有兴趣可以浏览官方文档:

https://docs.nestjs.com/openapi/introduction
相关文章
|
16天前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
2月前
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成
|
2月前
|
Java API 开发者
在Spring Boot中集成Swagger API文档
在Spring Boot中集成Swagger API文档
|
15天前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
37 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
16天前
|
Java API Spring
springboot集成swagger
这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。
|
2月前
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
2月前
|
Java 索引 Spring
教程:Spring Boot中集成Elasticsearch的步骤
教程:Spring Boot中集成Elasticsearch的步骤
|
2月前
|
Java API Spring
教程:Spring Boot中如何集成GraphQL
教程:Spring Boot中如何集成GraphQL
|
2月前
|
缓存 Java Spring
教程:Spring Boot中集成Memcached的详细步骤
教程:Spring Boot中集成Memcached的详细步骤
下一篇
云函数