PhalGo-Request對Echo進(jìn)行了封裝,目的是為了減少獲取請求參數(shù),轉(zhuǎn)換類型,判斷請求參數(shù)有效此類重復(fù)操作帶來的代碼量,PhalGo-Request支持Get,Post,Json三類請求參數(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請求參數(shù):
//獲取get請求參數(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)先級GET->POST
id := Request.Param("id").GetString()
在獲取請求的時候在最后一步需要指定你獲取請求參數(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()
說道請求處理還有一個不得不說的請求類型那就是Json,我們在很多復(fù)雜的業(yè)務(wù)情況下接口需要接受一個列表?那當(dāng)然會是一個json對象,比如說我們要對請求參數(shù)進(jìn)行加密,我們通常會把所有的請求參數(shù)放到一個json中進(jìn)行加密然后傳遞過來解密之后使用,所以json在請求參數(shù)處理中是必不可少的,PhalGo-Request也是意識到了這一點(diǎn)對json處理進(jìn)行了封裝,我們來看一下最簡單的從請求參數(shù)中來獲取json參數(shù)的一個小例子:
//通過get請求獲取params的json字符串
params := Request.GetParam("params").GetString()
//注入Json字符串
Request.SetJson(params)
//通過JsonParam和GetJsonString來獲取想要的參數(shù)想要的類型
id := Request.JsonParam("user.id").GetString()
我們在獲取Json參數(shù)時需要使用JsonParam函數(shù)JsonParam接受一個字符串,字符串通過"."隔開代表了獲取json的層級關(guān)系,為了更好的說明有入下一個例子:
json := `{
"userlist": {
"miaomi": {
"username": "喵了個咪"
}
}
}`
Request.SetJson(json)
//這樣就能獲取到字符串"喵了個咪"
Request.JsonParam("userlist.miaom.usernamei").GetString()
Json也同樣支持String,Int,Float類型 ,除此之外Json類型還多一個類型那就是json類型GetJson方法,GetJson會返回一個JS實(shí)例,我們可以通過JS實(shí)例來獲取更多的類型比如切片,Map等類型.
關(guān)于JS實(shí)例更多處理可以查看后續(xù)的PhalGo-Json或者是查看源代碼
有的童鞋會問如果我獲取的是Int類型但是參數(shù)傳遞的是中文字符要怎么處理呢,或者說是這個參數(shù)必須傳遞需要自己驗(yàn)證嗎,這些問題都留到下一節(jié)的參數(shù)驗(yàn)證過濾來給大家解答.
如果大家對PhalGo有好的想法或者是有好的意見隨時可以聯(lián)系我!
更多建議: