Sanic實現了簡潔的版本控制,透過傳遞關鍵詞引數version
給路由裝飾器或blueprint初始化方法就可以實現。這將會在url前面新增形似v{version}
的url字首,其中{version}
就是版本號。
每個路由的版本控制
給路由裝飾器傳遞版本號實現路由級的版本控制。
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
版本。
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***