如何在 Swagger UI 中隐藏服务器描述?
How to hide server descriptions in Swagger UI?
我有一个包含多个服务器的 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,“服务器”下拉列表显示每个服务器的描述:
是否可以从此下拉列表中隐藏服务器描述?
他们没有提供任何选项来替换此服务器的 description
在另一个地方,但他们提到 description
在 object representing a Server.[=19 的 swagger 规范中是可选的=]
Swagger UI 没有为此提供任何渲染选项。
description
的最佳用法是用一个词来定义,比如production、development、api、分期等..
如果您真的不想在下拉列表中出现,则可以将其从服务器列表中删除。
servers:
- url: https://development.gigantic-server.com/v1
- url: https://staging.gigantic-server.com/v1
- url: https://api.gigantic-server.com/v1
This part i am writing for your information, about how to use oas-servers
,
我观察了你的服务器urls,这些可以很容易地定义在单个url中,怎么样?使用 server variables.
servers:
- url: https://{environment}.gigantic-server.com/{version}
variables:
environment:
enum:
- 'development'
- 'staging'
- 'api'
version:
enum:
- 'v1'
希望对您有所帮助。
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);
}
})
我有一个包含多个服务器的 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,“服务器”下拉列表显示每个服务器的描述:
是否可以从此下拉列表中隐藏服务器描述?
他们没有提供任何选项来替换此服务器的 description
在另一个地方,但他们提到 description
在 object representing a Server.[=19 的 swagger 规范中是可选的=]
Swagger UI 没有为此提供任何渲染选项。
description
的最佳用法是用一个词来定义,比如production、development、api、分期等..
如果您真的不想在下拉列表中出现,则可以将其从服务器列表中删除。
servers:
- url: https://development.gigantic-server.com/v1
- url: https://staging.gigantic-server.com/v1
- url: https://api.gigantic-server.com/v1
This part i am writing for your information, about how to use
oas-servers
,
我观察了你的服务器urls,这些可以很容易地定义在单个url中,怎么样?使用 server variables.
servers:
- url: https://{environment}.gigantic-server.com/{version}
variables:
environment:
enum:
- 'development'
- 'staging'
- 'api'
version:
enum:
- 'v1'
希望对您有所帮助。
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);
}
})