案例
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:"-"