天天看點

【DRF版本控制】

"首先,我們開發的項目會有多個版本.

其次,我們的項目版本會随着更新越來越多,我們不可能因出了新版本就不維護舊版本了.

那麼,我們就需要對版本進行控制——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

"