Swagger 的文档 ( https://github.com/swagger-api/swagger-node ) 仅显示了如何创建新应用程序。如何将 Swagger 集成到现有的 API 应用程序中?
问问题
1776 次
1 回答
1
我遵循了本指南:https ://blog.cloudboost.io/adding-swagger-to-existing-node-js-project-92a6624b855b
npm i swagger-ui-express -S
我使用 Swagger 编辑器创建了一个swagger.yml
文件。http://editor.swagger.io/
我将此添加到我的服务器:
var swaggerUi = require('swagger-ui-express')
var fs = require('fs')
var jsyaml = require('js-yaml');
var spec = fs.readFileSync('swagger.yml', 'utf8');
var swaggerDocument = jsyaml.safeLoad(spec);
...
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
然后我就可以通过http://localhost/api-docs
.
不幸的是,它与 Swagger 与 Java 中的 Spring Boot 的集成级别不同,您可以在其中添加注释,Swagger 将自动为您生成文档。似乎 Swagger for Node 需要您swagger.yml
手动维护文档。我有我的路由定义像app.use('/users', userRouter)
和users.js
文件里面我有函数定义像router.post('/status', (req, res) => { ... }
. 这似乎与 Swagger for Node 不兼容,后者有一个operationId
以某种方式指向函数名称的概念。
于 2019-11-08T04:37:17.847 回答