看到 validator 咱们第一反应会想起啥?见名知意我就可以知道他是一个验证器,如果用过 gin web 框架的同学,自然是用过 gin 里面的 validator,只不过 gin 中使用的关键字是 binding 去做标识
开门见山
Validator 实际上是一个验证工具,属于 golang 的第三方包,这个包中使用了各种反射技巧来提供了各种校验和约束数据的方式方法,非常实用,常用的有这些:
-
基本的字段长度,大小,范围的约束
- len:约束参数长度
- eq:数值等于参数值
- max:数值小于等于参数值
- min:数值大于等于参数值
- ne:不等于参数值
- gt:大于参数值,gte:大于等于参数值
- lt:小于参数值, lte:小于等于参数值
- oneof:只能是枚举值中的一个,这些值必须是数值或字符串,以空格分隔,如果字符串中有空格,则使用单引号包围。例如:oneof=changsha beijing haerbing
-
是否必选,是否跳过,是否忽略
- -:跳过该字段
- | :使用多个约束,只需要满足其中一个,例如:xxx| xxx
- required:必选约束,不能为默认值
- omitempty:如果字段未设置,则忽略它
-
各种格式约束如
- url
- ip、ipv4、ipv6
- uuid
- datetime
- json