PhalGo-參數(shù)驗證過濾

2018-01-04 09:28 更新

PhalGo-參數(shù)驗證過濾

phalGo 的參數(shù)過濾使用 beego 提供的獨立模塊 validation 進行封裝改造 , 從而達到可以和 request 一同使用的效果 , 通過統(tǒng)一的報錯機制對不匹配的參數(shù)進行處理.

連貫操作

當我們自己進行參數(shù)驗證時,我們需要先獲取參數(shù),在判斷參數(shù)是否存在,判斷長度是否在制定范圍內(nèi),在判斷是否符合我們所需要的格式,尤其在Go語言需要花費大量的代碼量來實現(xiàn)這一系列功能,但是在PhalGo中進行了良好的封裝,對一個參數(shù)的基本處理都能在一行內(nèi)完成,如下所示:

name := Request.Param("name").Require(true).Max(30).SetDefault("喵咪").GetString()

一個連貫操作就對一個參數(shù)進行很好的描述,而不用和傳統(tǒng)的寫法一樣消耗大量的代碼量在參數(shù)獲取驗證上面

使用方法

PhalGo的參數(shù)驗證是和Request緊密結(jié)合在一起的大致格式如下:

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ù)報錯,當有多個驗證失敗也只返回首個

支持參數(shù)驗證類型

PhalGo的參數(shù)驗證支持大部分驗證規(guī)則:

  • Require(bool) //是否必須
  • Max(int) //最大長度/大小
  • Min(int) //最小長度/大小
  • ZipCode() //郵政編碼
  • Phone() //手機號或固定電話號
  • Tel() //固定電話號
  • Mobile() //手機號
  • Base64() //base64編碼
  • IP() //IP格式,目前只支持IPv4格式驗證
  • Email() //郵箱格式
  • Match(string) //正則匹配,其他類型都將被轉(zhuǎn)成字符串再匹配
  • NoMatch(string) //反正則匹配,其他類型都將被轉(zhuǎn)成字符串再匹配
  • Numeric() //數(shù)字
  • Alpha() //alpha字符
  • AlphaNumeric() //alpha字符或數(shù)字
  • AlphaDash() //alpha字符或數(shù)字或橫杠-_
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號