You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Node.js代码注释自动生成swagger.json文件?

最简实现:通过代码注释生成Swagger JSON文档(Node.js API)

步骤1:安装核心依赖

使用swagger-jsdoc工具,它能解析代码中的JSDoc风格Swagger注释并生成规范的swagger.json文件。执行安装命令:

npm install swagger-jsdoc --save-dev

步骤2:创建Swagger配置文件

在项目根目录新建swagger.config.js,配置基础文档信息并指定要扫描的路由文件路径:

const swaggerJsdoc = require('swagger-jsdoc');

const options = {
  definition: {
    openapi: '3.0.0', // 匹配你的Swagger版本
    info: {
      title: '你的API项目名称',
      version: '1.0.0',
      description: 'API接口自动生成文档',
    },
  },
  apis: ['./routes/**/*.js'], // 根据你的项目结构调整,指定包含接口注释的文件路径
};

const swaggerSpec = swaggerJsdoc(options);
module.exports = swaggerSpec;

步骤3:在接口代码中添加Swagger注释

在路由/接口函数上方添加符合Swagger规范的JSDoc注释,示例如下:

/**
 * @swagger
 * /api/users/{id}:
 *   get:
 *     summary: 根据ID获取单个用户信息
 *     description: 传入用户ID,返回对应用户的详细数据
 *     parameters:
 *       - in: path
 *         name: id
 *         required: true
 *         description: 用户唯一ID
 *         schema:
 *           type: string
 *     responses:
 *       200:
 *         description: 请求成功,返回用户对象
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 id:
 *                   type: string
 *                 name:
 *                   type: string
 *                 email:
 *                   type: string
 *       404:
 *         description: 未找到对应ID的用户
 */
router.get('/api/users/:id', (req, res) => {
  // 接口业务逻辑
  res.json({ id: req.params.id, name: '张三', email: 'zhangsan@example.com' });
});

步骤4:添加生成swagger.json的脚本

在package.json的scripts字段中添加生成命令:

"scripts": {
  "generate-swagger": "node -e \"const swaggerSpec = require('./swagger.config.js'); const fs = require('fs'); fs.writeFileSync('./swagger.json', JSON.stringify(swaggerSpec, null, 2))\""
}

执行以下命令即可自动生成swagger.json文件:

npm run generate-swagger

生成的swagger.json可以直接导入你已有的swagger-ui前端使用。

内容的提问来源于stack exchange,提问作者Fergie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:20:32