來(lái)孝偎,我們一起來(lái)想想租幕,先不管你使用的是什么網(wǎng)絡(luò)請(qǐng)求框架腊嗡,今天我們就一起來(lái)討論一下關(guān)于請(qǐng)求這邊業(yè)務(wù)的事兒。
我能想到的是拾酝,在做業(yè)務(wù)接口的時(shí)候燕少,需要有如下的幾個(gè)點(diǎn):
1)大家應(yīng)該使用的比較多的都是json吧,輕量級(jí)蒿囤,解析也比較方便客们。
2)最外層的數(shù)據(jù)外必須要有一個(gè)狀態(tài)碼。
3)每種狀態(tài)碼材诽,包括錯(cuò)誤的都對(duì)應(yīng)著有一個(gè)提示底挫,每種錯(cuò)誤碼都對(duì)應(yīng)著一個(gè)錯(cuò)誤字符提示,方便后面的分析
4)可在一處配置公共的參數(shù)脸侥。
5)區(qū)分授權(quán)業(yè)務(wù)建邓,與非授權(quán)接口。
6)可以Hook返回的數(shù)據(jù)睁枕。
7)合理的處理臟數(shù)據(jù)官边。
9)可上報(bào)錯(cuò)誤接口。
一)Json小巧外遇,方便注簿,想當(dāng)初,google的gson沒有出來(lái)的時(shí)候臀规,使用JsonObject滩援,與JsonArray的時(shí)候,是有多么的不方便∷遥現(xiàn)在用的比較方便的玩徊,可能一個(gè)是Google自家產(chǎn)的Gson,還有阿里那邊傳說(shuō)中解析速度比Gson快的 Fastjson,用這個(gè)FastJson的時(shí)候,我記得是有一個(gè)包是為Android做的谨究,比較小去除了一些不必要的東西恩袱。 ?ABase里面使用的轉(zhuǎn)化包,如下所示:
二)暫時(shí)定義的數(shù)據(jù)結(jié)構(gòu)是這樣的ABase里面有一個(gè)BaseBean?
三)關(guān)于每種錯(cuò)誤碼的提示胶哲,擴(kuò)展可在此處添加
四)添加一些公共的請(qǐng)求參數(shù)
我們經(jīng)常面臨著畔塔,在每個(gè)請(qǐng)求發(fā)起時(shí),會(huì)面臨著一些公共參數(shù)鸯屿,我們不期望在每個(gè)發(fā)起接口的地兒都重寫澈吨,那么你后續(xù)有更多參數(shù)需要擴(kuò)展,就在這個(gè)地兒寫就行了寄摆。
六)Hook一些接口數(shù)據(jù)
可能有不少的同學(xué)碰到過這樣的情況谅辣,后臺(tái)寫接口的同學(xué)忙不過來(lái)。雖然說(shuō)業(yè)務(wù)接口已經(jīng)定下來(lái)了婶恼,但是經(jīng)常會(huì)說(shuō)接口沒有出來(lái)沒有辦法測(cè)試桑阶。 我覺得可以這樣柏副,接口已經(jīng)定義出來(lái)后,可以后臺(tái)的同學(xué)蚣录,或者是自己造一些數(shù)據(jù)Hook住一些待開發(fā)的接口割择,當(dāng)調(diào)用這些接口時(shí),讀取的是按照接口數(shù)據(jù)從本地進(jìn)行讀取相對(duì)應(yīng)的結(jié)構(gòu)的數(shù)據(jù)萎河,從來(lái)暫時(shí)不中斷研發(fā)這塊的開發(fā)荔泳。而在Abase中,我覺得最合適的地兒虐杯,應(yīng)該是這塊:
七 ) ?九 ) 關(guān)于臟數(shù)據(jù)這塊的問題换可,臟數(shù)據(jù)有可能會(huì)導(dǎo)致應(yīng)用的Crash,任何的網(wǎng)絡(luò)數(shù)據(jù)厦幅, 我們都不能太相信沾鳄,所以這塊我們需要做一些適當(dāng)?shù)漠惓2蹲剑瑫r(shí)將訪問的參數(shù)确憨,接口名字译荞,上傳到服務(wù)器以方便后臺(tái)的排錯(cuò)。