0

我需要使用 NodeJS 开发 API,还需要为 API 开发文档。我与 swagger auto-gen 集成以创建 swagger.json。但是如果我如下使用 routes.js,swagger.json 将无法正确生成

var express = require('express');

module.exports = function(app) {
var userController    = require('../controller/userController');
var apiRouter = express.Router();
var routerV1 = express.Router();
var routerV2 = express.Router();

app.use('/admin', apiRouter);
apiRouter.use("/v1", routerV1);
apiRouter.use("/v2", routerV2);

routerV1.route('/users').get(userController.getUsersV1);    
routerV2.route('/users').get(userController.getUsersV2);
 

}

并且还在 swagger.js 中映射了这些 routes.js

请建议生成 swagger.js 的最佳方法

我们需要为所有控制器创建路由文件吗?

4

1 回答 1

2

swagger-autogen 的第 2 版添加了此功能。以前的版本不能识别路线。在您的情况下,生成文件 swagger.js 和其他文件的最佳方法是:

文件: swagger.js

const swaggerAutogen = require('swagger-autogen')();
const outputFile = './swagger_output.json';
const endpointsFiles = ['./routes.js']; // root file where the route starts.

swaggerAutogen(outputFile, endpointsFiles).then(() => {
    require('./index.js');           // Your project's root file
})

将您的模块更新到最新版本。

并使用以下命令运行您的项目:node swagger.js

关于所有控制器的路由文件,是可能的,但取决于您的 API 正在解决的问题,但是,swagger-autogen 并不限制这一点。我希望它对你有帮助。如果需要,请查看此示例: 使用路由器的 swagger-autogen

于 2020-12-09T22:34:07.573 回答