Ich füge Swagger UI zu meiner Python Flask-Anwendung mit Flasgger hinzu. Die häufigsten Beispiele im Internet sind für die Grund Flask Stil mit @app.route
:Wie verwende ich Flasgger mit Flask-Anwendungen mit Blueprints?
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})
, das funktioniert.
In meiner Anwendung verwende ich nicht @app.route
Dekoratoren, um die Endpunkte zu definieren. Ich benutze Flasch Blueprints. Wie folgt vor:
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'])
....
Wie oben gesehen, habe ich @swag_from
Dekorateur auf der TestResourceClass.get()
Methode, die auf den GET-Methode Endpunkt gebunden ist. Ich habe auch den Endpunkt = test
, der in den zwei Plätzen zusammenpaßt.
Aber ich bekomme nichts auf der Swagger UI, es ist alles leer. Die docs_test_get.yml
-Datei enthält das gültige Yaml-Markup, um die Swagger-Spezifikation zu definieren.
Was fehlt mir? Wie kann ich Flasgger Swagger UI mit Flask Blueprint-basierten Einstellungen arbeiten lassen?
Ich weiß, das hilft nicht wirklich mit Ihrer Frage, aber hier geht nur für den Fall. Ich benutze flassger nicht, ich benutze flask-swagger: https://github.com/gangverk/flask-swagger Ich habe eine Pull-Anfrage erstellt, die speziell auf dieses Problem eingeht: https://github.com/gangverk/flask- swagger/pull/34 Ich kann Ihnen nur sagen, dass Flaschendruck jetzt Blaupausen unterstützt – AArias
Danke, ich werde es mir ansehen. Ich habe nach Alternativen gesucht und https://github.com/rantav/flask-restful-swagger gefunden, die Flask-Apps mit BluePrints und Resources für die API-Definition besser zu unterstützen scheinen. –