请求结构体如下:
// 学生结构
type StudentParam struct {
StudentID uint64 `json:"student_id" binding:"required"`
StudentName int `json:"type" binding:"required"`
}
// 批量创建学生
type CreateStudentsParam struct {
Students []StudentParam `json:"students" binding:"required"`
}
控制器代码:
var param CreateStudentsParam
err := c.ShouldBindJSON(¶m)
最后执行结果会发现验证器并不会生效的。
无论你是否提交必填参数,gin都会校验通过,没有按照理想的规则来验证请求参数!
解决方法:
将:
type CreateStudentsParam struct {
Students []StudentParam `json:"students" binding:"required"`
}
替换为:
type CreateStudentsParam struct {
Students []StudentParam `json:"students" binding:"dive"`
}
即可生效!