参数检查 - meetbill/chi GitHub Wiki
参数检查
https://segmentfault.com/a/1190000023725115
1 常见问题
1.1 为什么 gin 的配置中使用的 binding,而 validator 库中使用的 validate
gin 中使用的 validator 是 v8 版本,v8 与 v9 版本区别比较大。
其中一个区别是v8版本没有指定默认的 TagName,需要在每次声明 validator 实例的时候配置;
在v9中设置了默认的 TagName 就是validate。
gin 框架在使用的时候设置的TagName为”binding”。
code(gin/binding/default_validator.go)
func (v *defaultValidator) lazyinit() {
v.once.Do(func() {
v.validate = validator.New()
v.validate.SetTagName("binding")
})
}
1.2 required
required 表示字段必须有值,并且不为默认值,例如bool默认值为false、string默认值为””、int默认值为0。
1.3 URL 参数及 body 参数检查
Gin 验证URL中参数使用 tag为“form”
Gin 验证POST 请求体中参数使用 tag为“json”