2017-04-26 3 views
0

Könnten Sie bitte beschreiben, wie Sie die Basis-URL in der von Flask Restplus automatisch generierten Dokumentation angeben?Wie wird die Basis-URL in der Flask Restplus-Dokumentation angegeben?

Ich verwende den folgenden Code, aber nichts zeigt in der Prahlerei UI up:

from flask import Flask 
from flask_restplus import Api 

app = Flask(__name__) 
api = Api(app, 
    title='Data Quality Framework API', 
    version='v0.1', 
    doc='/data_quality_framework/api/documentation', 
    contact='[email protected]', 
    base_url='/test') 

enter image description here

Antwort

3

standardmäßig, wenn dieses Muster unter Verwendung von (. Dh mit app als Konstruktorargument), die API ist auf dem Wurzel-Endpunkt (dh. /) und die Swagger-Dokumentation ist auf der API-Wurzel (dh. immer noch /).

Sie haben mehrere Möglichkeiten:

Verwenden Sie einen Plan der API-Wurzel

zu ändern Wenn Sie die Dokumentation auf der API-Wurzel halten wollen, aber die API-Wurzel ändern, use a blueprint Sie API zu registrieren, wo Sie wollen.

from flask import Flask, Blueprint 
from flask_restplus import Api 

app = Flask(__name__) 
blueprint = Blueprint('api', __name__, url_prefix='/test') 
api = Api(blueprint) 
app.register_blueprint(blueprint) 

assert url_for('api.doc') == '/test/' 

nur der Dokumentation ändern Ort

Wenn Sie die API Wurzel an der gleichen Stelle halten wollen, aber nur in der Dokumentation Position verschieben, Flask-restplus können Sie es mit dem doc Parameter angeben.

from flask import Flask 
from flask_restplus import Api 

app = Flask(__name__) 
api = Api(app, doc='/test/') 

assert url_for('doc') == '/test/' 

Sie können auch beide kombinieren. Weitere Informationen zur erweiterten Anpassung der Dokumentation finden Sie unter http://flask-restplus.readthedocs.io/en/stable/swagger.html#customization.

+0

Vielen Dank, wie hier beschrieben (https://github.com/noirbizarre/flask-restplus/issues/286) Ich konnte dies erreichen, indem ich die url_ für sich selbst entfernte und die Dokumentationsurl direkt in 'api legte = Api (..., doc = '/ documentation') ' –

+0

Hallo Alexis und Axel, deine Konversation ist ein wenig irreführend, weil sie unvollständig ist, sogar im Gespräch auf GitHub Link. in einfachen worten braucht man nur etwas wie "url_prefix ="/api "' bei der erstellung des blueprint-objekts und sage '/ doc' im doc parameter der api-objekt-erstellungszeit. also wird die endgültige URL '/ api/doc' und' Base URL' wird '/ api' total sinnvoll. Der von Axel hinzugefügte Dokumentationslink erklärt sich viel besser. –

Verwandte Themen