Могу ли я использовать Swagger с конечными точками Nameko-HTTP? - PullRequest
1 голос
/ 01 марта 2020

У меня есть какой-то сервер Nameko-HTTP, основанный на JSON запрос / ответ и Flask интерфейс, который я запускаю с Docker Compose. Сейчас я пытаюсь реализовать документирование / тестирование с помощью Swagger.

Я использую модуль flask_swagger_ui, который запускает SwaggerUI по выбранному URL, но при попытке отправить запрос в мой сервис Nameko он показывает мне «TypeError: NetworkError при попытке извлечь ресурс. " Nameko-сервис не регистрирует новые запросы. В то время как примеры curl, сгенерированные Swagger, прекрасно работают с localhost, если выставить необходимые порты.

docker -compose.yml

index_service:
    build: index_service
    command: /usr/local/bin/nameko run index_service
    networks:
      - public_network

  index_page:
    build: index_page
    command: python -m index_page
    ports:
      - 5000:5000
    depends_on:
      - index_service
    networks:
      - public_network

flask настройка приложения:

from flask import Flask
from flask_swagger_ui import get_swaggerui_blueprint

app = Flask(__name__)
SWAGGER_URL = '/api/swagger'
API_URL = '/api/docs.yml'

swaggerui_blueprint = get_swaggerui_blueprint(
    SWAGGER_URL,
    API_URL,
)
app.register_blueprint(swaggerui_blueprint, url_prefix=SWAGGER_URL)

from . import views

app.run(host='0.0.0.0')

swagger.yml

openapi: 3.0.0
info:
    title: Index service
servers:
    - url: http://index_service:8000/
      description: Address in Docker network
    /get_services:
        get:
            responses:
                '200':
...