len:等于参数值,validate:"len=2" max:最大值,小于等于参数值,validate:"max=20"(小于等于20) min:最小值,大于等于参数值,validate:"min=2,max=20"(大于等于2小于等于20) ne:不等于,validate:"ne=2"(不等于2) oneof:只能是列举出的值其中一个,这些值必须是数值或字符串,以空格分隔,如果字符串中有空...
使用 validator 进行数据验证的示例代码如下:package mainimport ( "fmt" "github.com/go-playground/validator/v10")type User struct { Username string `validate:"required"` Age int `validate:"gte=0,lte=130"` Email string `validate:"required,email"`}func main() { val...
PHP全栈工程师 @ ABC
var trans ut.Translator//初始化一个翻译器函数func InitTrans(locale string) (err error) {//修改gin框架中的validator引擎属性,实现定制v, ok := binding.Validator.Engine().(*validator.Validate)ifok {//注册一个获取json的tag自定义方法v.RegisterTagNameFunc(func(field reflect.StructField) string { na...
.Validator.Engine().(*validator.Validate);ok{zhT:=zh.New()// 中文翻译器enT:=en.New()// 英文翻译器uni:=ut.New(enT,zhT,enT)// locale 通常取决于 http 请求头的 'Accept-Language'varokbool// 也可以使用 uni.FindTranslator(...) 传入多个locale进行查找Trans,ok=uni.GetTranslator(locale)if!
代码说binding.Validator.Engine()里面装着*validator.Validate,go-playground/validator/v10说那咱们接着抄例子吧 // 调用它,完成扩展注册funcInitExtendValidation(){v,ok:=binding.Validator.Engine().(*validator.Validate)if!ok{log.Fatal().Msg("validator engine changed")return}// 注册新的自定义验证规则va...
后来在同事CR的时候,说GIN有更好的参数检验方法,gin框架使用github.com/go-playground/validator进行参数校验,我们只需要在定义结构体时使用binding或validatetag标识相关校验规则,就可以进行参数校验了,很方便。相信也有很多小伙伴不知道这个功能,今天就来介绍一下这部分。
v *validator.Validate, topStruct reflect.Value, currentStructOrField reflect.Value, field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string, ) bool { if s, ok := field.Interface().(string); ok { if s == "admin" { ...
"required" validate:"min=1,max=100"`}funcisValidUsername(fl validator.FieldLevel)bool{username:=fl.Field().String()for_,char:=range username{if!unicode.IsLetter(char)&&!unicode.IsDigit(char){returnfalse}}returntrue}funcmain(){r:=gin.Default()validate:=validator.New()validate.Register...
在上面示例中,注册了/user到validateUser的路由。在validateUser中,将请求参数和User类型的变量u进行了绑定,在绑定过程中,实际上是调用了UserStructLevelValidation函数的。 我们看下具体的示例代码: func validateUser(c *gin.Context) { var u User if err := c.ShouldBindJSON(&u); err == nil { ...