gpt4 book ai didi

node.js - swagger-ui-express 不在浏览器中呈现,但在 Postman 中具有响应正文

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:15 25 4
gpt4 key购买 nike

我正在尝试记录一个 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))

它不起作用(不在浏览器中渲染)。当我使用断点检查控制流时,我注意到以下方法执行顺序

  1. app.use
  2. 第二个app.get
  3. 第一个 app.get

最佳答案

我也遇到了同样的问题,深入查看后发现该问题与错误的响应 header 有关。就我而言,响应 header 设置为 res.setHeader('Content-Type', 'application/json');。删除后有效。

确保您的响应 header 具有 Content-Type: text/html;字符集=utf-8

关于node.js - swagger-ui-express 不在浏览器中呈现,但在 Postman 中具有响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55120766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com