2017-04-26 141 views
0

您能否描述如何在由Flask Restplus自動生成的文檔中指明基礎URL?如何在Flask Restplus文檔中指示基礎URL

我運行下面的代碼,但沒有在招搖UI顯示出來:

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

回答

3

默認情況下,使用此模式時(即與app爲構造函數的參數),該API位於根端點(即/),並且swagger文檔位於API根目錄(即仍然/)。

你有多種可能性:

使用的藍圖改變API根

如果你想保持API的根文件,但改變API根,use a blueprint註冊你的API,其中你要。

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/' 

只更改文件位置

如果你想保持API的根在同一個地方,但只有移動的文件位置,燒瓶restplus讓您與doc參數指定。

from flask import Flask 
from flask_restplus import Api 

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

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

你也可以將兩者結合起來。有關高級文檔定製的更多詳細信息,請參閱http://flask-restplus.readthedocs.io/en/stable/swagger.html#customization

+0

謝謝,正如討論[這裏](https://github.com/noirbizarre/flask-restplus/issues/286)我能夠通過刪除url_for本身並將文檔url直接放在'api = Api(...,doc ='/ documentation')' –

+0

你好Alexis和Axel,你的談話有點誤導,因爲它不完整,甚至在github鏈接的對話中。簡單地說,所有需要的就是在創建blueprint對象時使用'url_prefix =「/ api」',並在api對象創建時間的doc parmater中聲明'/ doc'。所以最終的url變成'/ api/doc','Base URL'將會變成'/ api'完全合理。 Axel添加的文檔鏈接解釋得更好。 –