golan参数校验Validator
程序员文章站
2024-03-31 22:31:04
前言:开发接口的时候需要多前端提交的参数进行参数校验,如果提交的参数只有一个两个,这样我们可以简单写个if判断,但是如果提交的参数比较多,通过if判断就比较繁琐了,在go中有一个validator包可...
前言:
开发接口的时候需要多前端提交的参数进行参数校验,如果提交的参数只有一个两个,这样我们可以简单写个if判断,但是如果提交的参数比较多,通过if判断就比较繁琐了,在go中有一个validator
包可以通过反射结构体struct
的tag
进行参数校验
1.实践
定义结体:
初始化结构体并做参数校验:
效果:
如参数校验不通过,err中会包含不通过字段信息
1.1校验标签
-:跳过该字段,不测验;
|:应用多个束缚,只须要满足其中一个,例如rgb|rgba;
required:字段必须设置,不能为默认值;
omitempty:如果字段未设置,则疏忽它
1.2字符串约束
-
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
;
1.3自定义校验器
在gin中支持实现自定义校验标签
定义校验逻辑:
注册标签:
应用标签到结构体上:
测试:
附加:
go中获取标签值是通过反射进行获取的:
到此这篇关于golan参数校验validator的文章就介绍到这了,更多相关go参数校验validator内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!