在看一个 gin 项目的源码, 项目中使用了 gorm 语句, 和 beego 的 validation, 然后发现在定义的结构体中, 有几种不同的注释, 后面的注释有 json, form, gorm 和 valid, 想请教一下后面注释的验证功能属于哪个包的功能?或者是 go 的原生验证吗? 因为想查阅一下完整的验证, 不知道从何下手...
一:
type Article struct {
TagID int `json:"tag_id" gorm:"index"`
Desc string `json:"desc"`
Content string `json:"content"`
}
二:
type AddTagForm struct {
Name string `form:"name" valid:"Required;MaxSize(100)"`
CreatedBy string `form:"created_by" valid:"Required;MaxSize(100)"`
State int `form:"state" valid:"Range(0,1)"`
}
三:
type auth struct {
Username string `valid:"Required; MaxSize(50)"`
Password string `valid:"Required; MaxSize(50)"`
}
四:
type Auth struct {
ID int `gorm:"primary_key" json:"id"`
Username string `json:"username"`
Password string `json:"password"`
}
1
cnbattle 2020-08-07 18:09:17 +08:00
反射 tag 看下 reflect 包
|
2
kidlj 2020-08-07 18:28:42 +08:00
Struct tags
|
3
ila 2020-08-07 18:31:41 +08:00 via Android
可以用 gojsonschema 做参数检验
|
4
kwlokip 2020-08-07 18:43:32 +08:00 via Android
gin 文档有写是用另一个库的
|
5
janxin 2020-08-07 18:54:54 +08:00
json 是给标准库 encoding/json 用的
gorm 是给 gorm 用的 valid 不是很确定,beego 的吗? gin 也有,是用的 go-playground/validator/v10 |
8
kayseen OP @janxin 感谢回复,valid 应该是 beego 的 validation 包,还有一个 form 不知道是不是用的 gin...
|
9
saltbo 2020-08-07 19:02:27 +08:00
|
10
cnbattle 2020-08-08 09:13:59 +08:00
@kayseen https://www.jianshu.com/p/c7d5c1c8a2d8 看下 “ Person struct “ 的 ”validation“ 函数的代码
|
11
zibber 2020-08-08 10:30:05 +08:00
gin 封装了 validator 包, tag 里加 binding
|