【发布时间】:2019-08-02 21:11:54
【问题描述】:
我正在尝试记录一个 API,为此我使用 swagger-ui-express。
当我使用以下内容时,
app.use('/api-docs/*', swaggerUi.serve, swaggerUi.setUp(swaggerDoc)
或
app.use('/api-docs/*', swaggerUi.serve)
app.get('/api-docs/*', swaggerUi.setup(swaggerDoc))
一切都很完美,但我希望 swaggerDoc 根据 URL 命中动态创建,因此我添加了以下代码。但是现在,HTML 页面永远不会在浏览器中呈现,但是当在 Postman 中点击时,它似乎具有与为前一种方法呈现 HTML 时相同的响应正文。
所以当我将上面的代码修改如下时,
app.use('/api-docs/*', swaggerUi.serve)
app.get('/api-docs/*', function(request, response, next){
console.log(request.url);
var apiNameSplitArray = request.url.split('/')
var apiName = apiNameSplitArray[2]
swaggerDoc = JSONConstructor.JSONConstructorTest(apiName.trim())
next()
})
app.get('/api-docs/*', swaggerUi.setup(swaggerDoc))
它不起作用(不会在浏览器中呈现)。当我使用断点检查控制流时,我注意到以下方法执行顺序
app.use- 第二个
app.get - 第一个
app.get
【问题讨论】:
标签: node.js express swagger swagger-ui