Swagger ui connexion在另一个url上提供招摇过市的用户界面
我们正在使用Swagger ui connexion在另一个url上提供招摇过市的用户界面,swagger-ui,openapi,connexion,Swagger Ui,Openapi,Connexion,我们正在使用connexion来服务于招摇过市的用户界面。我们使用的是openapi 3.0.0规范。下面是我们的招摇过市的一小部分。yml: openapi: 3.0.0 servers: - url: / paths: /resource: ... /resource2: ... 在这种情况下,用户界面在/ui处提供。但是,我们使用nginx将所有到/resource的请求重定向到此容器中。我们希望在/some subdir/ui而不是/ui上提供swagg
connexion
来服务于招摇过市的用户界面。我们使用的是openapi 3.0.0规范。下面是我们的招摇过市的一小部分。yml
:
openapi: 3.0.0
servers:
- url: /
paths:
/resource:
...
/resource2:
...
在这种情况下,用户界面在/ui
处提供。但是,我们使用nginx将所有到/resource
的请求重定向到此容器中。我们希望在/some subdir/ui
而不是/ui
上提供swagger ui,以便能够将请求重定向到正确的容器
试验1
这是可行的,除了资源现在由/app/resource
等提供,而同一个资源将来可能由另一个应用提供,因此我们不希望应用名称出现在资源的URL中(虽然它可能仅适用于招摇过市的ui)
试验2
我发现,在构建connexion应用程序时,我可以指定swagger\uURL
选项:
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\u url
的组合可以:
options = {
'swagger_url': '/app/ui',
'openapi_spec_path': '/app/openapi.json'
}
connexion_app = connexion.App(__name__, specification_dir='./', options=options)
options = {
'swagger_url': '/app/ui',
'openapi_spec_path': '/app/openapi.json'
}
connexion_app = connexion.App(__name__, specification_dir='./', options=options)