如何更改默认的swagger.json文件路径?

hap*_*ppy 5 nginx swagger swagger-ui consul swagger-2.0

我创建了Ngnix-Consul Docker安装程序,称为https://github.com/nginxinc/NGINX-Demos/tree/master/consul-template-demo

并创建了许多微服务。因此,仅在添加例如以下的服务名称后,才能访问所有微服务

http://example.com/service_name/get_data
Run Code Online (Sandbox Code Playgroud)

一切工作正常,然后我想为所有微服务添加扩展功能,因此可以在以下代码段中尝试使用以下功能访问扩展功能ui

http://example.com/service_name/ui
Run Code Online (Sandbox Code Playgroud)

但是问题是我无法在该用户界面中加载swagger.json,因为它试图访问以下网址上的swagger.json

http://example.com/swagger.json
Run Code Online (Sandbox Code Playgroud)

但是json文件在

http://example.com/service_name/swagger.json    
Run Code Online (Sandbox Code Playgroud)

如何更改swagger.json的默认路径?

微服务中的应用程序是在以下代码段尝试的python-flask中创建的

swagger: "2.0"
    info:
      description: "Add service"
      version: "1.0.0"
      title: "Add Service"
      contact:
        email: "abc@efg.com"
      license:
        name: "s1.0"
        url: "http://sample.com"
    host: "abc.efg.com"
    tags:
    - name: "add service"
      description: "service"
    - name: "delete service"
      description: "data"
    schemes:
    - "http"
    paths:
      /service_name/get_data:
Run Code Online (Sandbox Code Playgroud)

甚至我试图在swagger.yaml文件中添加basePath,然后它甚至没有打开swaggerui

swagger: "2.0"
    info:
      description: "Add service"
      version: "1.0.0"
      title: "Add Service"
      contact:
        email: "abc@efg.com"
      license:
        name: "s1.0"
        url: "http://sample.com"
    host: "abc.efg.com"
    basePath: "service_name"
    tags:
    - name: "add service"
      description: "service"
    - name: "delete service"
      description: "data"
    schemes:
    - "http"
    paths:
      /get_data:
Run Code Online (Sandbox Code Playgroud)

更新:

from flask import Flask
import connexion

app = Flask(__name__)
app = connexion.App(__name__)
app.add_api('swagger.yaml')

//apis

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8090, debug=True)
Run Code Online (Sandbox Code Playgroud)

Ruf*_*fat 0

如果文件 swagger.json 在 NGINX 配置中是静态的,您可以像这样创建别名规则:

location ^~ /swagger.json {
    alias /path_to/swagger.json;
}
Run Code Online (Sandbox Code Playgroud)