PhalGo-Request

2018-01-04 09:27 更新

PhalGo-Request

PhalGo-Request對Echo進(jìn)行了封裝,目的是為了減少獲取請求參數(shù),轉(zhuǎn)換類型,判斷請求參數(shù)有效此類重復(fù)操作帶來的代碼量,PhalGo-Request支持Get,Post,Json三類請求參數(shù),并且使用連貫操作來獲取API需要的參數(shù)減少重復(fù)代碼量,.

Request初始化

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)
}

獲取Get和Post參數(shù)

參數(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參數(shù)

說道請求處理還有一個不得不說的請求類型那就是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或者是查看源代碼

小結(jié)

有的童鞋會問如果我獲取的是Int類型但是參數(shù)傳遞的是中文字符要怎么處理呢,或者說是這個參數(shù)必須傳遞需要自己驗(yàn)證嗎,這些問題都留到下一節(jié)的參數(shù)驗(yàn)證過濾來給大家解答.

如果大家對PhalGo有好的想法或者是有好的意見隨時可以聯(lián)系我!

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號