Node.js 集成 Swagger 自动生成 API 文档:两种方案对比

作者:星河

时间:2026-11-01

浏览:593

本文介绍在 Node.js 项目中利用 swagger-jsdoc 与 swagger-ui-express 自动生成 API 文档的两种方法。对比了手动配置与基于 JSDoc 注释自动更新的实现方式,并提供相关代码示例及参考链接,帮助开发者高效维护接口文档。

文章目录

在 Node.js 项目中,有多种方式可以利用 Swagger 自动生成 API 接口文档。本文将介绍如何结合 swagger-jsdoc 与 swagger-ui-express 快速实现这一功能。

方案一:直接使用 swagger-ui-express

// 方便来浏览和测试api
npm i swagger-ui-express
import { Express } from 'express';
import swaggerUi from 'swagger-ui-express';
const options = {
  openapi: "3.0.3",
      info: {
      title: '文档相关接口',
      version: '1.0.0',
      description: 'API documentation using Swagger',
  },
  tags: [{
    name: "develop",
    description: "开发者站点管理接口",
  }],
  paths: {
    "/develop": {
      "get": {
      "tags": ["develop"],
      "description": "获取文档列表!",
          "responses": {
            "200": {
              "description":"返回字符串数组"
            }
          }
      }
    }
  }
}
const swaggerInstall = (app: Express) => {
  app.use(
    '/apidoc',
    swaggerUi.serve,
    swaggerUi.setup(options)
  );
};
export { swaggerInstall };

方案一:直接使用 swagger-ui-express

若直接通过配置生成接口文档,当接口发生变更时,需要同步修改配置,操作相对繁琐。此时可引入 swagger-jsdoc,通过在接口代码中添加注释信息,实现 API 文档的自动更新。其原理是读取接口对应的注释内容,并将其转换为相应的配置信息。

方案二:配合 swagger-jsdoc 使用

  • JSDoc 注释是一种特殊的语法,用于为 JavaScript 代码提供文档化和类型提示信息。它基于 JSDoc 规范,旨在以标准方式描述代码的结构、功能及类型信息。

  • 主要作用:当接口文档注释发生更新时,生成的 API 文档会同步更新,确保接口变更与配置保持一致。

npm i swagger-jsdoc
import { Express } from 'express';
import path from 'path';
import swaggerDoc from 'swagger-jsdoc';
import swaggerUi from 'swagger-ui-express';

const swaggerOptions = {
  swaggerDefinition: {
    info: {
      title: '文档相关接口',
      version: '1.0.0',
      description: 'API documentation using Swagger',
    },
  },
  apis: [path.join(__dirname, './routes/*.ts')], // 指定包含 API 路由的文件或文件夹路径
};
const swaggerInstall = (app: Express) => {
  app.use(
    '/apidoc',
    swaggerUi.serve,
    swaggerUi.setup(swaggerDoc(swaggerOptions))
  );
};
export { swaggerInstall };
//在对应的接口,注释对应的文档
import express from 'express';
import {
  developGetFile,
  developGetFileList,
} from '../controllers/developControllers';
const router = express.Router();
/**
 * @openapi
 * /develop:
 *   get:
 *     tags: [develop]
 *     description: 获取文档列表!
 *     responses:
 *       200:
 *         description: 返回字符串数组.
 */
router.get('/', developGetFileList);

参考资料

https://editor.swagger.io/

https://jsdoc.app/

https://github.com/Surnet/swagger-jsdoc

https://github.com/scottie1984/swagger-ui-express

以上即为在 Node.js 中使用 Swagger 自动生成 API 接口文档的详细内容,更多关于 Node.js Swagger 生成 API 文档的资料请关注本站其它相关文章!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章