Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swagger ui connexion在另一个url上提供招摇过市的用户界面_Swagger Ui_Openapi_Connexion - Fatal编程技术网

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)