-1

Swagger 的文档 ( https://github.com/swagger-api/swagger-node ) 仅显示了如何创建新应用程序。如何将 Swagger 集成到现有的 API 应用程序中?

4

1 回答 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 回答