合法性检查

编写GO的WEB开发框架 (六): Validator数据校验

元气小坏坏 提交于 2020-03-25 03:52:19
3 月,跳不动了?>>> 一般地,获取到请求参数后,都需要根椐接口定义,对参数有一些合法性检查,比如: 是否必填 是否数字,数字的范围 字符串的长度 值是否在指定的列表中 是否有效的日期 是否满足指定的正式表达式 本篇讲述怎么编写一个Validator来对请求参数进行合法性检查。 validator的使用方法 设计一个功能时,我都习惯“目标驱动”,那就先来看看我期望的Validator怎么使用 func (this *Controller) User(){ validator:=NewValidator(this.Post) //将要检查的数据字典传入,生成Validator对象 validator.AddRule("name","string","2-5",true) //对字段name添加规则: 2-5个字符长度,必填 validator.AddRule("sport","list","football,swim",false) //对字段sport添加规则: 值需在列表中(football,swim),非必填 ... if err:= validator.Check();err !=nil{ //检查不通过,处理错误 } } 相关结构、接口及实现 有了目标,就开始定义对象、接口及相关的方法 type Validator struct { data map[string