如何记录现有的 nodejs API?
How to document existing nodejs APIs?
Node 新手,对多个库做同样的事情感到非常沮丧。我哪儿也不去。
我有现有的Node + express 应用程序,需要集成swagger 文档。
我发现最有用的帖子是 。但它只是希望有并行 api-docs.json 文件。这不是自动生成的。
我想在控制器中记录每个 API,并希望生成文档。谁能给我指点更好的资源?
我终于可以使用 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 注释
/**
* @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);
});
- Swagger 文档位于
http://localhost:3000/api/docs/?url=/api-docs.json
Node 新手,对多个库做同样的事情感到非常沮丧。我哪儿也不去。
我有现有的Node + express 应用程序,需要集成swagger 文档。
我发现最有用的帖子是
我想在控制器中记录每个 API,并希望生成文档。谁能给我指点更好的资源?
我终于可以使用 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 注释
/**
* @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);
});
- Swagger 文档位于 http://localhost:3000/api/docs/?url=/api-docs.json