如何记录现有的nodejs API?

时间:2016-11-14 11:47:15

标签: javascript node.js express swagger

Node的新手,真的很沮丧,多个库做同样的事情。我什么都不去。

我有现有的Node + express应用程序,需要集成swagger文档。 我找到的最有用的帖子是this one。但它只是希望有并行的api-docs.json文件。这不是自动生成的。

我想记录控制器中的每个API,并希望生成文档。有人能指出我更好的资源吗?

1 个答案:

答案 0 :(得分:3)

最后,我能够使用swagger-jsdoc

步骤

  • 添加Swagger-UI
  • 添加swagger-ui依赖

    npm install -g swagger-ui

  • 在server.js文件中配置swagger

    var swaggerJSDoc = require('swagger-jsdoc'); var options = { swaggerDefinition: { info: { title: 'Hello World', // Title (required) version: '1.0.0', // Version (required) }, }, apis: ['./routes.js'], // Path to the API docs }; var swaggerSpec = swaggerJSDoc(options); app.get('/api-docs.json', function(req, res) { res.setHeader('Content-Type', 'application/json'); res.send(swaggerSpec); }); app.use('/api/docs',express.static('./node_modules/swagger-ui/dist'));

  • 向控制器功能添加招摇评论

/** * @swagger * resourcePath: /api * description: All about API */

/** * @swagger * /login: * post: * description: Login to the application * produces: * - application/json * parameters: * - name: username * description: Username to use for login. * in: formData * required: true * type: string * - name: password * description: User's password. * in: formData * required: true * type: string * responses: * 200: * description: login */ app.post('/login', function(req, res) { res.json(req.body); });