百度已收录

案例

type UserInfoLogin struct {
    Name       string `json:"name" binding:"min=3,max=7"`
    Password   string `json:"password"`
    RePassword string `json:"re_password"`
}

func login(c *gin.Context) {
    var UserInfo UserInfoLogin

    err := c.ShouldBindJSON(&UserInfo)
    if err != nil {
        c.JSON(200, gin.H{"msg": err.Error()})
        return
    }
    c.JSON(200, UserInfo)
}

func main() {
    router := gin.Default()

    router.POST("/", login)

    router.Run(":87")
}

参数

// 不能为空,并且不能没有这个字段
required: 必填字段,如:binding:"required"

// 针对字符串的长度
min 最小长度,如:binding:"min=5"
max 最大长度,如:binding:"max=10"
len 长度,如:binding:"len=6"

// 针对数字的大小
eq 等于,如:binding:"eq=3"
ne 不等于,如:binding:"ne=12"
gt 大于,如:binding:"gt=10"
gte 大于等于,如:binding:"gte=10"
lt 小于,如:binding:"lt=10"
lte 小于等于,如:binding:"lte=10"

// 针对同级字段的
eqfield 等于其他字段的值,如:PassWord string binding:"eqfield=Password"
nefield 不等于其他字段的值

  • 忽略字段,如:binding:"-"