文档章节

PhalGo-参数验证过滤

喵了_个咪
 喵了_个咪
发布于 2016/07/08 16:49
字数 645
阅读 215
收藏 8

#PhalGo-参数验证过滤

phalGo 的参数过滤使用 beego 提供的独立模块 validation 进行封装改造 , 从而达到可以和 request 一同使用的效果 , 通过统一的报错机制对不匹配的参数进行处理.

##连贯操作

当我们自己进行参数验证时,我们需要先获取参数,在判断参数是否存在,判断长度是否在制定范围内,在判断是否符合我们所需要的格式,尤其在Go语言需要花费大量的代码量来实现这一系列功能,但是在PhalGo中进行了良好的封装,对一个参数的基本处理都能在一行内完成,如下所示:

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

一个连贯操作就对一个参数进行很好的描述,而不用和传统的写法一样消耗大量的代码量在参数获取验证上面

##使用方法

PhalGo的参数验证是和Request紧密结合在一起的大致格式如下:

Request.Param(参数名称).你需要的验证规则.Get参数类型

这样就可以获取一个被验证过的参数

##报错机制

当我们参数验证不通过是需要处理的,当我们对所有参数定义完成之后,我们只需要重写一下一个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字符或数字或横杠-_

© 著作权归作者所有

共有 人打赏支持
上一篇: PhalGo-Respones
喵了_个咪
粉丝 317
博文 150
码字总数 199180
作品 4
杨浦
技术主管
私信 提问
喵了个咪/phalgo

PhalGo V 0.0.3 ##前言 PhalGo是一个Go语言开发的一体化开发框架,主要用于API开发,因为使用ECHO框架作为http服务,MVC模式一样可以使用,牛顿曾经说过"如果我比别人看得远,那是因为我站在巨人的...

喵了个咪
2016/05/24
0
0
PhalGo-Viper获取配置

PhalGo-Viper获取配置 viper项目地址:https://github.com/spf13/viper 什么是viper viper是国外大神spf13编写的开源配置解决方案,viper拥有一下功能以及特性如下: 设置默认值 从JSON,toml ...

喵了_个咪
2016/06/01
188
0
PhalGo-Echo路由

PhalGo-Echo路由 Echo官网地址:https://labstack.com/echo Echo是PhalGo最核心的组件,负责了整体的请求路由返回等功能,并且Echo支持HTTP2协议以及HTTPS协议 为什么选择Echo 在初期笔者考虑过...

喵了_个咪
2016/05/24
437
0
PhalGo-ADM思想

PhalGo-ADM思想 关于ADM思想主要是指在API开发中使用API,Domain和Model三层结构,PhalGo从PhalApi中学习并且推崇这种设计模式,这种模式的好处在于分工明确,业务复用,数据复用可以减少复杂业务...

喵了_个咪
2016/05/26
73
0
PhalGo-Respones

PhalGo-Respones 在处理请求 Api 请求中 , 除了对 Request 之外最重要的就是 Response 了 , PhalGo 支持两种格式的参数返回一种是 Josn 一种是 XML , 在 PhalGo 中默认使用JSON进行返回 , 可...

喵了_个咪
2016/07/12
50
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka+Flink 实现准实时异常检测系统

1.背景介绍 异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防...

架构师springboot
34分钟前
3
0
DecimalFormat 类基本使用

/* * DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度 * 0 表示如果位数不足则以 0 填充 * # 表示只要有可能就把数字拉上这个位置 * */ public static void main(String[] args){...

嘴角轻扬30
51分钟前
4
0
This APT has Super Cow Powers.

在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有超级牛力 牛力是个什么梗? 则说明你的系统...

taadis
今天
3
0
起薪2万的爬虫工程师,Python需要学到什么程度才可以就业?

爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。那么,Python需要学到什么程度呢?今天我们来看看3位前辈的回答。 1、前段时间快要毕业,而我又不想找自己的老本行Java开发...

糖宝lsh
今天
9
0
携手开发者共建云生态 首届腾讯云+社区开发者大会在京举办

本文由云+社区发表 北京时间12月15日,由腾讯云主办,极客邦科技、微信、腾讯TEG协办的首届腾讯云+社区开发者大会在北京朝阳悠唐皇冠假日酒店举办。在会上,腾讯云发布了重磅产品开发者平台以...

腾讯云加社区
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部