Итак, я создаю API с помощью Flask-RestPlus и использую схемы для разделения кода на более мелкие части, но при попытке зарегистрировать несколько конечных точек API с одинаковым префиксом URL-адреса регистрируется только одна схема.
Шаблоны чертежей:
from flask import Blueprint
from flask_restplus import Api, Resource
tmpl_bp = Blueprint('templates_api', __name__)
api = Api(tmpl_bp)
ns_tmpl = api.namespace('templates', description='Templates operations')
@ns_tmpl.route('/')
class Templates(Resource):
def get(self):
return "All templates"
def post(self):
return "Added/updated template"
Визуализация чертежа:
from flask import Blueprint
from flask_restplus import Api, Resource
rend_bp = Blueprint('render_api', __name__)
api = Api(rend_bp)
ns_render = api.namespace('render', description='Render actions')
@ns_render.route('/')
class Render(Resource):
def post(self):
return "Rendering everything"
Основной код приложения, в котором происходит регистрация:
from flask import Flask, render_template
from api.templates import tmpl_bp
from api.render import rend_bp
app = Flask(__name__)
app.register_blueprint(tmpl_bp, url_prefix="/api/v1")
app.register_blueprint(rend_bp, url_prefix="/api/v1")
@app.route('/')
def home():
return "This is the main page"
Полученный в результате Swagger API:
Я ожидал, что и шаблоны, и чертежи рендеринга будут обслуживаться на /api/v1/
как /api/v1/templates
и /api/v1/render
соответственно. Но каждый раз регистрируется только один.
Как сделать так, чтобы оба чертежа обслуживались под одним и тем же префиксом?
APIBlueprint
. - person dmitrybelyakov   schedule 10.12.2019