PhalGo-參數驗證過濾

#PhalGo-參數驗證過濾ui

phalGo 的參數過濾使用 beego 提供的獨立模塊 validation 進行封裝改造 , 從而達到能夠和 request 一同使用的效果 , 經過統一的報錯機制對不匹配的參數進行處理.編碼

##連貫操做code

當咱們本身進行參數驗證時,咱們須要先獲取參數,在判斷參數是否存在,判斷長度是否在制定範圍內,在判斷是否符合咱們所須要的格式,尤爲在Go語言須要花費大量的代碼量來實現這一系列功能,可是在PhalGo中進行了良好的封裝,對一個參數的基本處理都能在一行內完成,以下所示:ip

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

一個連貫操做就對一個參數進行很好的描述,而不用和傳統的寫法同樣消耗大量的代碼量在參數獲取驗證上面字符串

##使用方法string

PhalGo的參數驗證是和Request緊密結合在一塊兒的大體格式以下:io

Request.Param(參數名稱).你須要的驗證規則.Get參數類型

這樣就能夠獲取一個被驗證過的參數base64

##報錯機制request

當咱們參數驗證不經過是須要處理的,當咱們對全部參數定義完成以後,咱們只須要重寫一下一個error處理語句方可對驗證不經過的參數進行處理:方法

//參數過濾error處理
	if err := Request.GetError(); err != nil {
		return Response.RetError(err, -1)
	}

注意:此處默認會返回首個驗證失敗的參數報錯,當有多個驗證失敗也只返回首個

##支持參數驗證類型

PhalGo的參數驗證支持大部分驗證規則:

  • Require(bool) //是否必須
  • Max(int) //最大長度/大小
  • Min(int) //最小長度/大小
  • ZipCode() //郵政編碼
  • Phone() //手機號或固定電話號
  • Tel() //固定電話號
  • Mobile() //手機號
  • Base64() //base64編碼
  • IP() //IP格式,目前只支持IPv4格式驗證
  • Email() //郵箱格式
  • Match(string) //正則匹配,其餘類型都將被轉成字符串再匹配
  • NoMatch(string) //反正則匹配,其餘類型都將被轉成字符串再匹配
  • Numeric() //數字
  • Alpha() //alpha字符
  • AlphaNumeric() //alpha字符或數字
  • AlphaDash() //alpha字符或數字或橫槓-_
相關文章
相關標籤/搜索