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"`
}
相关推荐
腻害兔7 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社8 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
萧瑟余晖9 小时前
JDK 26 新特性详解
java·开发语言
马优晨9 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
ttwuai12 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说12 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane199413 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了14 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品14 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘14 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts