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