![](/img/trans.png)
[英]Swagger-UI generated python server not starting due to 'no module named' error
[英]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 中呈现时,“服务器”下拉列表显示每个服务器的描述:
是否可以从此下拉列表中隐藏服务器描述?
Swagger UI 总是呈现服务器description
(如果提供),这是硬编码的:
https://github.com/swagger-api/swagger-ui/blob/master/src/core/plugins/oas3/components/servers.jsx#L114
作为一种解决方法,您可以在加载 API 定义后动态修改它并删除服务器描述。 为此,请编辑您的index.html
页面并将以下onComplete
function 添加到 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);
}
})
他们没有提供任何选项来在其他地方替换此服务器的description
,但他们已经提到该description
在 object 的 swagger 规范中是可选的,代表一个 Server 。
Swagger UI 没有为此提供任何渲染选项。
description
的最佳用途是用一个词定义,例如production 、 development 、 api 、 staging等。
如果您真的不想在下拉列表中,则可以将其从服务器列表中删除。
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 中轻松定义,如何? 使用 服务器变量。
servers:
- url: https://{environment}.gigantic-server.com/{version}
variables:
environment:
enum:
- 'development'
- 'staging'
- 'api'
version:
enum:
- 'v1'
希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.