Sanic versioning 版本控制

veelion發表於2019-04-01

Sanic實現了簡潔的版本控制,透過傳遞關鍵詞引數version給路由裝飾器或blueprint初始化方法就可以實現。這將會在url前面新增形似v{version}的url字首,其中{version}就是版本號。

Sanic versioning 版本控制

每個路由的版本控制

給路由裝飾器傳遞版本號實現路由級的版本控制。

from sanic import Sanic
from sanic.response import text

app = Sanic()

@app.route("/text", version=1)
async def test(request):
    return text('Hi, Version 1\n')

@app.route("/text", version=2)
async def test(request):
    return text('Hi, Version 2\n')


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

使用curl訪問這個app:

curl localhost:8888/v1/text
curl localhost:8888/v2/text

blueprint的全域性版本控制

初始化blueprint時傳遞版本號,可以應用到該blueprint下的所有路由。

from sanic import response
from sanic.blueprints import Blueprint

bp = Blueprint('test', version=1)

@bp.route('/html')
def handle_request(request):
    return response.html('<p>Hello world!</p>')

這樣,bp下的所有路由都是v1版本。

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章