PhalGo-参数验证过滤
时间:2022-04-29
本文章向大家介绍PhalGo-参数验证过滤,主要内容包括PhalGo-参数验证过滤、使用方法、报错机制、支持参数验证类型、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
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字符或数字或横杠-_
- 不使用DalFactory和IDAL,支持多种数据库应用
- MVC和三层,我的一个不成熟的看法,大家批批
- 实体类的二进制序列化
- 多任务验证码识别
- 一加手机系统预装APP被曝存在后门
- 单数据库,多数据库,单实例,多实例不同情况下的数据访问效率测试
- 打造轻量级的实体类数据容器
- “设计应对变化”--实例讲解一个数据同步系统
- TOP语句放到表值函数外,效率异常低下
- 从吉日嘎拉那里学到的……
- 【分享】纯js的n级联动列表框 —— 基于jQuery,支持下拉列表框和列表框,最重要的是n级,当然还有更重要的
- C#中?与??的区别
- 隐藏在程序旮旯中的“安全问题”
- 调用PostgreSQL存储过程,找不到函数名的问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【ceph】性能测试工具cosbench(1)
- linux命令tree的使用
- 腾讯云V3签名方法之iOS
- Go语言学习之 panic 和 recover
- Go语言学习之函数
- 【Spark Operator】webhook的分析
- 图解人脸识别算法facenet系列(一)
- Go 语言学习之 struct
- Go 语言学习之map
- 前端|利用手机号登录获取手机验证码
- Linux netstat命令结果分析
- setlistmap部分源码解析
- 使用 Log4j2 + SLF4j 打造日志系统的全方位教程
- 树莓派4的操作系统安装烧录、设置SSH、WIFI、VNC及备份
- C# dotnet 使用 startIndex 提升 IndexOf 的性能