Nest.js 中如何使用 @nestjs/swagger 生成 API 文档?

推荐答案

在 Nest.js 中使用 @nestjs/swagger 生成 API 文档的步骤如下:

  1. 安装依赖: 首先需要安装 @nestjs/swaggerswagger-ui-express 依赖包。

  2. 配置 Swagger: 在 main.ts 文件中配置 Swagger 文档。

    -- -------------------- ---- -------
    ------ - ----------- - ---- ---------------
    ------ - -------------- --------------- - ---- ------------------
    ------ - --------- - ---- ---------------
    
    ----- -------- ----------- -
      ----- --- - ----- ------------------------------
    
      ----- ------ - --- -----------------
        -------------- ----
        -------------------- ------
        ------------------
        ---------------
        ---------
      ----- -------- - --------------------------------- --------
      -------------------------- ---- ----------
    
      ----- -----------------
    -
    ------------
  3. 使用装饰器: 在控制器和路由处理函数上使用 Swagger 装饰器来生成文档。

    -- -------------------- ---- -------
    ------ - ----------- ---- ----- ---- - ---- -----------------
    ------ - -------- ------------- ----------- - ---- ------------------
    ------ - ------------ - ---- -----------------------
    
    ----------------
    -------------------
    ------ ----- -------------- -
      ------
      --------------- -------- -------- --
      -------------- ------- ---- ------------ -------- --
      ---------- ------ -
        ------ ----- ------ ------- --- ------
      -
    
      -------
      --------------- -------- -------- --
      -------------- ------- ---- ------------ -------- --
      -------------- ------------- -------------- ------ -
        ------ ----- ------ ---- - --- -----
      -
    -
  4. DTO 装饰器: 在 DTO 类上使用 Swagger 装饰器来生成请求体和响应体的文档。

    -- -------------------- ---- -------
    ------ - ----------- - ---- ------------------
    
    ------ ----- ------------ -
      --------------
      ----- -------
    
      --------------
      ---- -------
    
      --------------
      ------ -------
    -
  5. 访问文档: 启动应用后,访问 http://localhost:3000/api 即可查看生成的 API 文档。

本题详细解读

1. 安装依赖

@nestjs/swagger 是 Nest.js 官方提供的 Swagger 模块,用于生成 API 文档。swagger-ui-express 是 Swagger UI 的 Express 中间件,用于在浏览器中展示生成的文档。

2. 配置 Swagger

main.ts 文件中,通过 DocumentBuilder 配置 Swagger 文档的基本信息,如标题、描述、版本等。然后使用 SwaggerModule.createDocument 生成文档对象,并通过 SwaggerModule.setup 设置文档的访问路径。

3. 使用装饰器

在控制器和路由处理函数上使用 Swagger 装饰器来生成文档。常用的装饰器包括:

  • @ApiTags:为控制器添加标签。
  • @ApiOperation:为路由处理函数添加操作描述。
  • @ApiResponse:为路由处理函数添加响应描述。

4. DTO 装饰器

在 DTO 类上使用 @ApiProperty 装饰器来描述请求体或响应体的字段信息。这些信息会在 Swagger 文档中展示出来,帮助开发者理解 API 的输入输出。

5. 访问文档

配置完成后,启动应用并访问指定的路径(如 http://localhost:3000/api),即可在浏览器中查看生成的 API 文档。文档中会展示所有的 API 接口、请求参数、响应格式等信息,方便开发者调试和使用。

纠错
反馈