Я создал указанную настройку Ngnix-Consul Docker https://github.com/nginxinc/NGINX-Demos/tree/master/consul-template-demo.
И создал множество микросервисов.Таким образом, все микросервисы доступны только после добавления имени службы, например,
http://example.com/service_name/get_data
Все работает нормально, тогда я хотел добавить swagger для всех микросервисов, поэтому попробовал с помощью фрагмента ниже. Я могу получить доступ к swagger ui, используя
http://example.com/service_name/ui
Но проблема в том, что я не могу загрузить swagger.json в этот пользовательский интерфейс, поскольку он пытается получить доступ к swagger.json по URL ниже
http://example.com/swagger.json
, но файл jsonна
http://example.com/service_name/swagger.json
Как я могу изменить путь по умолчанию для 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:
и даже я попытался добавить basePath в файл swagger.yaml, тогда он даже не открыл 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:
Обновление:
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)