swagger-ui - connexion 在另一个 url 服务 swagger ui
问题描述
我们正在使用connexion
服务招摇用户界面。我们使用的是 openapi 3.0.0 规范。这是我们的一小部分swagger.yml
:
openapi: 3.0.0
servers:
- url: /
paths:
/resource:
...
/resource2:
...
在这种情况下,用户界面在/ui
. 然而,我们使用 nginx 将所有请求重定向/resource
到这个容器。我们希望 swagger-ui 服务于 at/some-subdir/ui
而不是 at /ui
,以便能够将请求重定向到正确的容器。
试验 1
openapi: 3.0.0
servers:
- url: /app
paths:
/resource:
...
/resource2:
...
哪个有效,除了资源现在在/app/resource
etc 处提供,而同一资源将来可能由另一个应用程序提供,所以我们不希望应用程序名称出现在资源的 URL 中(虽然它可能是可以接受的只是为了招摇-ui)。
试验 2
我发现,在构建连接应用程序时,我可以指定swagger_url
选项:
options = {
'swagger_url': '/app/ui'
}
connexion_app = connexion.App(__name__, specification_dir='./', options=options)
现在 swagger-ui 服务于/app/ui
,但 ui 正在尝试提供/openapi.json
无法访问的服务,因为不在/app
(或任何其他子目录)下。
解决方案
几乎在那里,还有另一个(隐藏得很好)选项可以更改 的路径openapi.json
,与swagger_url
作品的组合:
options = {
'swagger_url': '/app/ui',
'openapi_spec_path': '/app/openapi.json'
}
connexion_app = connexion.App(__name__, specification_dir='./', options=options)
推荐阅读
- c# - 如何使 MacOS 上的 .NET Core 应用程序可编写脚本(使用 Applescript)?
- r - R:多列的高效表查找
- java - 只有特定列可选择 JTable 和/或仅从一列获取数据
- qt5 - Qt5 应用程序和窗口图标
- php - 从字符串创建 #hashtag 链接,HEX 颜色除外
- css - DIV 容器的 CSS flex 定位
- html - html卡片滚动条
- html - 如何在AngularJS中使用动态名称评估表单上的有效属性
- postgresql - 如何使用 postgis st_setvalue 更新磁贴中的所有单元格?
- rxjs - 如何订阅最后一个 observable 并在 rxjs 中执行一个函数?