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"`
}
相关推荐
二月夜6 小时前
剖析Java正则表达式回溯问题
java·正则表达式
xuhaoyu_cpp_java7 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
程序员二叉7 小时前
【Java】集合面试全套精讲|HashMap/ArrayList高频考点完整版
java·面试·哈希算法
cfm_29147 小时前
JVM GC垃圾回收初步了解
java·开发语言·jvm
心之伊始7 小时前
LangChain4j RAG 实战:Java 后端如何把本地文档接入 Embedding 检索链路
java·架构·源码分析·csdn
许彰午8 小时前
17_synchronized关键字深度解析
java·开发语言
张忠琳8 小时前
【Go 1.26.4】(Part 1) Go 1.26.4 超深度源码分析 — 总体架构与模块全景
开发语言·golang
Xzh04239 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
艾利克斯冰10 小时前
Java 设计模式-行为型模式(更新中)
java·开发语言·设计模式
倒霉蛋小马10 小时前
Java新特性:record关键字
java·开发语言