一架梯子,一头程序猿,仰望星空!
Beego 框架面试题 > 内容正文

Beego 如何进行请求参数验证?


问题简答

在 Beego 中进行请求参数验证可以通过参数校验器来实现。Beego 提供了 validation 包,可以自定义参数校验规则。

问题详解:

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
    }

    // 参数校验通过,继续业务逻辑处理
    ...
}