簡體   English   中英

Flask-Restplus /路線

[英]Flask-Restplus / route

我正在嘗試使用Flask-Restplus制作一個api並用昂首闊步來記錄它。

這是我到目前為止,它工作正常,但我不知道如何添加根路由。

from flask import Flask, Blueprint
from flask_restplus import Api, Resource, apidoc

app = Flask('__name__')
blueprint = Blueprint('v1', __name__, url_prefix='/rest/v1')
api = Api(blueprint, ui=False, version='1.0')

@blueprint.route('/apidoc/', endpoint='apidoc')
def swagger_ui():
   return apidoc.ui_for(api)

@blueprint.route('/', endpoint='rootres')
  def root():
     return ''

app.register_blueprint(blueprint)


ns = api.namespace('test', description='desc')

@ns.route('/', endpoint='rootresource')
class RootResource(Resource)
   def get(self):
       ...

while / rest / v1 / test工作正常,/ rest / v1給我找不到頁面。

如果我像這樣修改:

@blueprint.route('/aaa', endpoint='rootres')
   def root():
      return ''

然后/ rest / v1 / aaa有效。

問題:如何讓@ blueprint.route('/')工作?

我發現了非常相似的問題。 我希望使用自定義頁面制作'/'路線,並在不同路徑上使用swagger doc。

我的第一次嘗試(不工作)

from flask import Flask
from flask_restplus import Api

app = Flask(__name__)

api = Api(
    app= app,
    version='1.0',
    description='TEST API',
    doc='/docs/',
)

@app.route('/')
def hello():
    return "Hello on my page"

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

頁面http://127.0.0.1:5000/返回404錯誤

工作實例

from flask import Flask
from flask_restplus import Api

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello on my page"

api = Api(
    app= app,
    version='1.0',
    description='TEST API',
    doc='/docs/',
    default='mapi',
    default_label='Super API'
)

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

測試:

  • Python 3.6.1
  • 燒瓶(0.12.1)
  • flask-restplus(0.10.1)

當您編寫ui=False您禁用了/rest/v1/ path。

在下一個版本(本周末為0.8.1)中,您應該能夠寫出:

from flask import Flask, Blueprint
from flask_restplus import Api, Resource

app = Flask('__name__')
blueprint = Blueprint('v1', __name__, url_prefix='/rest/v1')
api = Api(blueprint, doc='/apidoc/', version='1.0')

@blueprint.route('/', endpoint='rootres')
def root():
    return ''

ns = api.namespace('test', description='desc')

@ns.route('/', endpoint='rootresource')
class RootResource(Resource)
    def get(self):
        ...

app.register_blueprint(blueprint)

無需再注冊文檔的特定視圖

對於`blueprint.route('/'),我認為這也是由0.8.1修正的。

注意:在命名空間導入/聲明之后,稍后注冊藍圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM