go-gin binding 标签详解

1.基础验证标签

Go 复制代码
type User struct {
    Name  string `binding:"required"`          // 必填字段
    Age   int    `binding:"gte=18,lte=100"`     // 数值范围
    Phone string `binding:"len=11"`             // 精确长度
    Code  string `binding:"min=6,max=8"`        // 长度范围
}

2.格式验证标签

Go 复制代码
type Order struct {
    Email    string `binding:"required,email"`  // 邮箱格式
    Website  string `binding:"url"`             // URL格式
    Price    string `binding:"regexp=^[0-9.]+$"`// 正则表达式
    Birthday string `binding:"datetime=2006-01-02"` // 时间格式
}

3.跨字段验标签

Go 复制代码
type Login struct {
    Password string `binding:"required"`
    Confirm  string `binding:"required,eqfield=Password"` // 两次输入一致
}

type Profile struct {
    Age  int `binding:"required,gte=18"`
    Role string `binding:"oneof=admin user guest"` // 枚举值验证
}

4.高级验证标签

Go 复制代码
type Product struct {
    Price  float64 `binding:"required,gt=0"`       // 数值必须大于0
    Stock  int     `binding:"required,lte(100)"`   // 数值小于等于100
    Tags   []string`binding:"dive,required"`       // 切片元素验证
}

type Order struct {
    Items []Item `binding:"dive,min=1"`            // 深度验证切片元素
}

type Item struct {
    Qty int `binding:"required"`
}
相关推荐
小羊没烦恼!5 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里5 天前
java中的继承和多态的区别
java
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕5 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码5 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖5 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时5 天前
01-06-A-JVM排查实战详解
java·jvm
ttwuai5 天前
Go开源后台管理系统推荐:怎么按技术栈和边界比较4个官方仓库?
golang·gin
vipxieliang5 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
ba_pi5 天前
mysql 查询所有表名并授权
java