Swagger-ui不断提供示例petstore,而不是提供swagger.json

时间:2017-05-10 09:49:46

标签: node.js swagger swagger-ui

我按照说明使用swagger-jsdoc为我现有的节点API设置了swagger文档。 swagger.json正在正确提供,我在index.html中的SwaggerUiBundle的url参数中添加了一个路径,如下所示:

const ui = SwaggerUIBundle({
url: "https://my.domain:5292/swagger.json",
dom_id: '#swagger-ui',
presets: [
  SwaggerUIBundle.presets.apis,
  SwaggerUIStandalonePreset
],
plugins: [
  SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout" })

但是,在浏览器中打开页面时尝试做的第一件事就是显示默认的 http://petstore.swagger.io/v2/swagger.json 而不是我的 swagger.json 。它实际上没有这样做,因为我通过https服务页面,而petstore不是https,但这是另一回事......

手动将 swagger.json 的地址输入到页面上的表单按预期工作。它正确显示API页面并验证它。但是,我不想总是在那里重新输入地址,并希望将其作为默认地址。

2 个答案:

答案 0 :(得分:1)

Swagger UI 3.0.9有一个bug,它忽略了url参数,并且始终打开Petstore。

它已在3.0.10中修复。

答案 1 :(得分:0)

最近使用docker进行部署时遇到了这个问题。尝试了所有事情,从将petstore的所有实例更改为我自己的api json文档,但无济于事。 最后,我找到了关于API_URL环境变量的信息,将其设置为DockerFile和voila中的api文档! 花了我两天时间,但很高兴看到它终于可以工作。