"首先,我們開發的項目會有多個版本.
其次,我們的項目版本會随着更新越來越多,我們不可能因出了新版本就不維護舊版本了.
那麼,我們就需要對版本進行控制——DRF版本控制.
@
目錄
使用内置的URLPathVersioning類
使用自定義的版本控制類
源碼剖析
DRF視圖中的APIView傳回的是View類中的view函數,然後調用dispatch方法.
那麼,我們來看看dispatch方法都做了些什麼:
執行self.initial方法之前是各種指派,包括request的重新封裝指派.
self.initial方法中有路由的分發,我們再來看下此方法具體都做了些什麼:
我們可以看到:
version版本資訊指派給了request.version.
scheme版本控制方案指派給了request.versioning_scheme.
其實這個版本控制方法就是我們配置的版本控制的類.
也就是說,APIView通過這個方法初始化自己提供的元件.
我們接下來看看rest_framework為我們提供了那些版本控制的方法(在from rest_framework import versioning檔案内):
如上,rest_framework為我們提供的所有版本控制的方法.
下面,我們來看看在URL上攜帶版本資訊的用法.
如上圖所有示,URLPathVersioning是在url上攜帶版本資訊的方法.
步驟一 setting.py
步驟二 urls.py
步驟三 views.py
測試效果如下圖:
步驟一 建立自定義版本控制類
步驟二 setting.py
步驟三 urls.py
步驟四 views.py
"