【问题标题】:Swagger-ui keeps showing example petstore instead of provided swagger.jsonSwagger-ui 不断显示示例 petstore 而不是提供的 swagger.json
【发布时间】:2017-10-08 21:27:43
【问题描述】:

我按照说明使用 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 页面并对其进行验证。但是,我不想总是在那里重新输入地址,而是希望将其作为默认地址。

【问题讨论】:

    标签: node.js swagger swagger-ui


    【解决方案1】:

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

    它已在 3.0.10 中修复。

    【讨论】:

    • 哈,我就知道会是这样。我实际上并不打算检查这一点,因为我最终摆脱了招摇,但这看起来是完美的解释。谢谢。
    【解决方案2】:

    我最近在使用 docker 部署时遇到了这个问题。尝试了一切,从将 petstore 的所有实例更改为我自己的 api json 文档,但无济于事。 最后我发现了 API_URL 环境变量,将它设置为我在 DockerFile 中的 api 文档,瞧! 我花了两天时间,但很高兴看到它终于奏效了。

    【讨论】:

    • 嗨 GANI 首先我使用的是 Swagger UI 3.25.0 在 dockerfile 我添加以下行 ENV API_KEY "None" ENV SWAGGER_JSON "/app/swagger.json " ENV 端口 8080 ENV API_URL "mycustomurl.com/swagger/docs/v1"
    猜你喜欢
    • 2022-07-07
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    相关资源
    最近更新 更多