validator库参数校验
web开发中,我们不可避免的对一些参数进行各种校验,比如长度限定,类型限定等等,以前做Java的时候,自己直接 if else就应付了,写的老长老长了,这显然不合理。
- gin框架使用/go-playground/validator进行参数校验
- 并且支持/go-playground/validator/v10,我们需要在定义结构体时使用 binding tag标识相关校验规则。
可以的话,最好也去看看 官方文档 啦
binding属性
字符串约束
名称 | 含义 |
---|---|
excludesall | 不包含参数中任意的 UNICODE 字符,例如excludesall=ab; |
excludesrune | 不包含参数表示的 rune 字符,excludesrune=asong; |
startswith | 以参数子串为前缀,例如startswith=hi; |
endswith | 以参数子串为后缀,例如endswith=bye。 |
contains | 包含参数子串,例如contains=email; |
containsany | 包含参数中任意的 UNICODE 字符,例如containsany=ab; |
containsrune | 包含参数表示的 rune 字符,例如`containsrune=asong; |
excludes | 不包含参数子串,例如excludes=email; |
范围约束
名称 | 含义 |
---|---|
ne | 不等于参数值,例如 ne=5; |
gt | 大于参数值,例如 gt=5; |
gte | 大于等于参数值,例如 gte=50; |
lt | 小于参数值,例如 lt=50; |
lte | 小于等于参数值,例如 lte=50; |
oneof | 只能是列举出的值其中一个,这些值必须是数值或字符串,以空格分隔,如果字符串中有空格,将字符串用单引号包围,例如 oneof=male female。 |
eq | 等于参数值, |