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字符或数字或横杠-_
相关文章
相关标签/搜索