說說APP接口中的版本控制
接口是APP的重要組成部分,數據是APP的核心,接口是連接APP和數據的紐帶。一般情況下,APP中會有大量的接口,再加上版本的變化,接口的升級,一個接口可能會衍生出很多個稍有差異的接口,這個時候接口如果維護的不好,后邊會亂為一鍋粥,客戶端不同版本使用不同的接口名(xxxv1,xxxv2,xxxv3.。。。。)
這個對客戶端來說貌似是很蛋疼的事情,如果能把版本控制完全放到服務端是不是更友善點,也會比客戶端靈活很多,發版出去之后也可以很優雅的修改。
設計
這個并非我憑空想出來的,是在公司里面開發的時候無意中發現的,覺得設計的還挺好,整理總結了下,拿出來分享下。知識應該是開源共享的。
客戶端發出去的版本token是固定不變的。
這里面有下面幾個要點:
token,使用token間接的標記請求的接口版本,這么做也在一定程度上防止了很多無用的請求,如果使用的是https傳遞信息,就更安全了,根本截獲不到這個tokenserver中的token =》 interface versionmap,保存了token和對應接口的版本號,請求來了之后會先根據這個尋找對應的接口版本。
interface{num}目錄,每個目錄對應一個版本,根據請求的接口讀取對應目錄下的接口配置文件,找到最終要執行的具體接口。
http://xxxx.xxxx.com/module/controller/list?token=6918b5e0567c7d47314c10ed413e3f95這個請求最終會打到listv2這個接口。
這樣就可以在服務端靈活的配置接口了,客戶端只要每次請求的時候帶上默認的token參數,就可以得到自己想要的了,完全不需要關心版本的問題。
擴展設計
當然了,如果還有其他信息的話也可以帶在token中,比如說客戶端操作系統類型,我們可以將token擴展為{clientType}_token,這樣token中就附帶了客戶端的信息,可以很輕松的獲取到客戶端類型,根據不同的類型也可以做一些想做的事情。
總結
還是那句話,有些司空見慣的東西并不是想象的那么簡單,可能也是前輩門經過多次總結優化出來的。
編輯:hfy
-
接口
+關注
關注
33文章
8612瀏覽量
151273 -
APP
+關注
關注
33文章
1574瀏覽量
72530
發布評論請先 登錄
相關推薦
評論