Я добавляю пользовательский интерфейс Swagger к моему приложению Python Flask с использованием Flasgger. Наиболее распространенные примеры в Интернете являются для основного стиля Колбы с использованием @app.route
:Как использовать Flasgger с использованием фляг с помощью чертежей?
from flasgger.utils import swag_from
@app.route('/api/<string:username>')
@swag_from('path/to/external_file.yml')
def get(username):
return jsonify({'username': username})
Это работает.
В моем приложении, однако, я не использую декораторы @app.route
для определения конечных точек. Я использую фляжки Чертежи. Как следующее:
from flask import Flask, Blueprint
from flask_restful import Api, Resource
from flasgger.utils import swag_from
...
class TestResourceClass(Resource):
@swag_from('docs_test_get.yml', endpoint='test')
def get() :
print "This is the get method for GET /1.0/myapi/test endpoint"
app = Flask(__name__)
my_api_blueprint = Blueprint('my_api', __name__)
my_api = Api(my_api_blueprint)
app.register_blueprint(my_api_blueprint, url_prefix='/1.0/myapi/')
my_api.add_resource(TestResourceClass, '/test/'
endpoint='test',
methods=['GET', 'POST', 'PUT', 'PATCH', 'DELETE'])
....
Как показано выше, я использовал @swag_from
декоратора на методе TestResourceClass.get()
который связан с методом GET, конечной точкой. У меня также есть конечная точка = test
, соответствующая в двух местах.
Но я ничего не получаю от пользовательского интерфейса Swagger, все пусто. Файл docs_test_get.yml
содержит действительную разметку yaml для определения спецификации swagger.
Что мне не хватает? Как я могу получить пользовательский интерфейс Flasgger Swagger, работающий с настройкой Flask Blueprint?
Я знаю, что это не помогает с вашим вопросом, но здесь идет на всякий случай. Я не использую flassger, я использую flask-swagger: https://github.com/gangverk/flask-swagger. Я создал запрос на перенос, который специально решает эту проблему: https://github.com/gangverk/flask- swagger/pull/34 Я могу только сказать вам, что колбаса теперь поддерживает чертежи – AArias
Спасибо, я посмотрю. Я посмотрел на альтернативы и нашел https://github.com/rantav/flask-restful-swagger, который, похоже, намного лучше поддерживает приложения Flask с использованием BluePrints и ресурсов для определения API. –