Swagger(https://github.com/swagger-api/swagger-node)的文档仅显示如何创建新应用。如何将Swagger集成到现有的API应用程序中?
wuboshuai2008 回答:如何将Swagger添加到现有的Node应用程序?
我遵循了本指南: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文档。
不幸的是,它与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
概念,该概念以某种方式指向函数名称。