[英]swagger-ui-express is not rendering in browser but has response body in Postma
我正在嘗試記錄一個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))
一切正常,但是我希望基於URL命中動態創建swaggerDoc
,因此我添加了以下代碼。 但是現在,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
我也面臨着同樣的問題,在深入查找后發現該問題與錯誤的響應頭有關。 就我而言,響應頭設置為res.setHeader('Content-Type', 'application/json');
。 刪除后有效。
確保您的響應標頭具有Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.