phalGo 的參數(shù)過濾使用 beego 提供的獨立模塊 validation 進行封裝改造 , 從而達到可以和 request 一同使用的效果 , 通過統(tǒng)一的報錯機制對不匹配的參數(shù)進行處理.
當我們自己進行參數(shù)驗證時,我們需要先獲取參數(shù),在判斷參數(shù)是否存在,判斷長度是否在制定范圍內,在判斷是否符合我們所需要的格式,尤其在Go語言需要花費大量的代碼量來實現(xiàn)這一系列功能,但是在PhalGo中進行了良好的封裝,對一個參數(shù)的基本處理都能在一行內完成,如下所示:
name := Request.Param("name").Require(true).Max(30).SetDefault("喵咪").GetString()
一個連貫操作就對一個參數(shù)進行很好的描述,而不用和傳統(tǒng)的寫法一樣消耗大量的代碼量在參數(shù)獲取驗證上面
PhalGo的參數(shù)驗證是和Request緊密結合在一起的大致格式如下:
Request.Param(參數(shù)名稱).你需要的驗證規(guī)則.Get參數(shù)類型
這樣就可以獲取一個被驗證過的參數(shù)
當我們參數(shù)驗證不通過是需要處理的,當我們對所有參數(shù)定義完成之后,我們只需要重寫一下一個error處理語句方可對驗證不通過的參數(shù)進行處理:
//參數(shù)過濾error處理
if err := Request.GetError(); err != nil {
return Response.RetError(err, -1)
}
注意:此處默認會返回首個驗證失敗的參數(shù)報錯,當有多個驗證失敗也只返回首個
PhalGo的參數(shù)驗證支持大部分驗證規(guī)則:
更多建議: