PhalGo-Request對(duì)Echo進(jìn)行了封裝,目的是為了減少獲取請(qǐng)求參數(shù),轉(zhuǎn)換類型,判斷請(qǐng)求參數(shù)有效此類重復(fù)操作帶來的代碼量,PhalGo-Request支持Get,Post,Json三類請(qǐng)求參數(shù),并且使用連貫操作來獲取API需要的參數(shù)減少重復(fù)代碼量,.
PhalGo是靈活的你可以使用PhalGo-Request也可以使用Echo原生的參數(shù)獲取(在使用restful風(fēng)格的情況需要使用Echo原生獲取方式),如果使用PhalGo-Request需要在接口內(nèi)部進(jìn)行初始化方可使用:
return func(c echo.Context) error {
Request := phalgo.NewRequest(c)
}
參數(shù)兩種傳遞方式想必不用多說大家都之道就是GET和POST方式,我們可以通過以下方式來獲取GET或POST請(qǐng)求參數(shù):
//獲取get請(qǐng)求參數(shù),接受string類型
id := Request.GetParam("id").GetString()
//獲取post參數(shù),接受string類型
id := Request.PostParam("id").GetString()
當(dāng)然如果你不想?yún)^(qū)分get和post參數(shù)可以這樣使用,優(yōu)先級(jí)GET->POST
id := Request.Param("id").GetString()
在獲取請(qǐng)求的時(shí)候在最后一步需要指定你獲取請(qǐng)求參數(shù)的類型,PhalGo-Request現(xiàn)支持三種類型的獲取,String,Int,Float幫助你更加方便的處理參數(shù)類型不需要自己進(jìn)行類型轉(zhuǎn)換多余的操作,使用方法分別如下:
id := Request.PostParam("id").GetString()
id := Request.PostParam("id").GetInt()
id := Request.PostParam("id").GetFloat()
說道請(qǐng)求處理還有一個(gè)不得不說的請(qǐng)求類型那就是Json,我們?cè)诤芏鄰?fù)雜的業(yè)務(wù)情況下接口需要接受一個(gè)列表?那當(dāng)然會(huì)是一個(gè)json對(duì)象,比如說我們要對(duì)請(qǐng)求參數(shù)進(jìn)行加密,我們通常會(huì)把所有的請(qǐng)求參數(shù)放到一個(gè)json中進(jìn)行加密然后傳遞過來解密之后使用,所以json在請(qǐng)求參數(shù)處理中是必不可少的,PhalGo-Request也是意識(shí)到了這一點(diǎn)對(duì)json處理進(jìn)行了封裝,我們來看一下最簡(jiǎn)單的從請(qǐng)求參數(shù)中來獲取json參數(shù)的一個(gè)小例子:
//通過get請(qǐng)求獲取params的json字符串
params := Request.GetParam("params").GetString()
//注入Json字符串
Request.SetJson(params)
//通過JsonParam和GetJsonString來獲取想要的參數(shù)想要的類型
id := Request.JsonParam("user.id").GetString()
我們?cè)讷@取Json參數(shù)時(shí)需要使用JsonParam函數(shù)JsonParam接受一個(gè)字符串,字符串通過"."隔開代表了獲取json的層級(jí)關(guān)系,為了更好的說明有入下一個(gè)例子:
json := `{
"userlist": {
"miaomi": {
"username": "喵了個(gè)咪"
}
}
}`
Request.SetJson(json)
//這樣就能獲取到字符串"喵了個(gè)咪"
Request.JsonParam("userlist.miaom.usernamei").GetString()
Json也同樣支持String,Int,Float類型 ,除此之外Json類型還多一個(gè)類型那就是json類型GetJson方法,GetJson會(huì)返回一個(gè)JS實(shí)例,我們可以通過JS實(shí)例來獲取更多的類型比如切片,Map等類型.
關(guān)于JS實(shí)例更多處理可以查看后續(xù)的PhalGo-Json或者是查看源代碼
有的童鞋會(huì)問如果我獲取的是Int類型但是參數(shù)傳遞的是中文字符要怎么處理呢,或者說是這個(gè)參數(shù)必須傳遞需要自己驗(yàn)證嗎,這些問題都留到下一節(jié)的參數(shù)驗(yàn)證過濾來給大家解答.
如果大家對(duì)PhalGo有好的想法或者是有好的意見隨時(shí)可以聯(lián)系我!
更多建議: