【问题标题】:How to hide server descriptions in Swagger UI?如何在 Swagger UI 中隐藏服务器描述?
【发布时间】:2020-06-26 04:18:36
【问题描述】:

我有一个包含多个服务器的 OpenAPI 3.0 定义:

servers:
- url: https://development.gigantic-server.com/v1
  description: Development server
- url: https://staging.gigantic-server.com/v1
  description: Staging server
- url: https://api.gigantic-server.com/v1
  description: Production server

在 Swagger UI 中呈现此定义时,“服务器”下拉菜单会显示每个服务器的描述:

是否可以从此下拉菜单中隐藏服务器描述?

【问题讨论】:

  • 嗨@anshulgoel,我编辑了你的问题以使其更清楚。如果这不是您的意思,请告诉我。
  • @Helen 我的意思只是与不可编辑的 YAML 相同。感谢您提供更清晰的信息。

标签: yaml swagger-ui openapi swagger-editor oas


【解决方案1】:

Swagger UI 始终呈现服务器 description(如果提供),这是硬编码的:
https://github.com/swagger-api/swagger-ui/blob/master/src/core/plugins/oas3/components/servers.jsx#L114

作为一种解决方法,您可以在加载 API 定义后动态修改它并删除服务器描述。为此,请编辑您的 index.html 页面并将以下 onComplete 函数添加到 Swagger UI 初始化代码:

  const ui = SwaggerUIBundle({
    url: "https://path/to/your/openapi.json",
    ...

    onComplete: function() {
      let spec = ui.specSelectors.specJson().toJS();
      let servers = spec.servers || [];

      for (let i in servers) {
        servers[i].description = ""
      }

      ui.specActions.updateJsonSpec(spec);
    }
  })

【讨论】:

  • 我们也可以考虑3.18版本的swagger。这也对我有用。谢谢
【解决方案2】:

他们没有提供任何选项来替换此服务器的description,但他们提到descriptionobject representing a Server 的swagger 规范中是可选的。

Swagger UI 没有为此提供任何渲染选项。

description 的最佳用法是用一个词来定义,例如 productiondevelopmentapistaging 等等。

如果您真的不想在下拉列表中,则可以将其从服务器列表中删除。

servers:
- url: https://development.gigantic-server.com/v1
- url: https://staging.gigantic-server.com/v1
- url: https://api.gigantic-server.com/v1

这部分我写给你参考,关于如何使用oas-servers

我观察了您的服务器 url,这些可以很容易地在单个 url 中定义,如何?使用server variables

servers:
- url: https://{environment}.gigantic-server.com/{version}
  variables: 
    environment:
      enum:
        - 'development'
        - 'staging'
        - 'api'
    version:
      enum:
        - 'v1'

希望对您有所帮助。

【讨论】:

  • 不,事实并非如此,我无法更改 YAML 文件。对我来说,描述即将到来,我需要从 swagger-ui 中删除它。
  • 你试过swagger ui吗?你能在你的问题中添加swagger ui配置吗?
猜你喜欢
  • 2023-01-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多