Beego参数校验例子,下面是使用步骤
1、在请求参数对应的结构体中定义校验规则。可以使用标签的方式定义校验规则,例如:
// 通过valid标签属性定义校验规则
type User struct {
Name string `valid:"Required; MaxSize(20)"`
Age int `valid:"Required; Range(1, 200)"`
Email string `valid:"Email; MaxSize(100)"`
Address string `valid:"MaxSize(200)"`
Password string `valid:"MinSize(6)"`
}
2、在控制器中引入 validation 包,并使用 validation.Validation 结构体进行参数校验。例如:
func (c *UserController) AddUser() {
user := models.User{}
// 首先将请求参数绑定到结构体对象
if err := c.ParseForm(&user); err != nil {
c.Ctx.ResponseWriter.WriteHeader(400)
c.Ctx.WriteString("无法解析请求参数")
return
}
// 执行参数校验
valid := validation.Validation{}
b, err := valid.Valid(&user)
if err != nil {
c.Ctx.ResponseWriter.WriteHeader(500)
c.Ctx.WriteString("参数校验出错")
return
}
if !b {
c.Ctx.ResponseWriter.WriteHeader(400)
c.Ctx.WriteString("请求参数错误")
return
}
// 参数校验通过,继续业务逻辑处理
...
}