У меня есть какой-то сервер 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':