1. 首先,确保你的项目中导入了gvalid包:
import "github.com/gogf/gf/util/gvalid"
2. 在处理请求的函数中使用验证器进行参数校验:
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
"github.com/gogf/gf/util/gvalid"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
s := g.Server()
// 注册路由
s.BindHandler("/user", func(r *ghttp.Request) {
// 获取请求参数
var user User
if err := r.GetStruct(&user); err != nil {
r.Response.Write("参数解析失败:" + err.Error())
return
}
// 定义验证规则
rules := []string{
"ID@required|min:1",
"Name@required|length:2,20",
"Age@required|between:1,100",
}
// 使用验证器进行参数校验
if err := gvalid.CheckStruct(user, rules, nil); err != nil {
r.Response.Write("参数校验失败:" + err.FirstString())
return
}
// 参数校验通过,执行业务逻辑
// ...
// 返回成功响应
r.Response.Write("请求成功")
})
// 启动Web服务器
s.Run()
}
在这个示例中,我们首先通过r.GetStruct方法获取请求参数,然后定义了一个验证规则数组rules,接着使用gvalid.CheckStruct方法进行参数校验。如果校验失败,会返回相应的错误信息;如果校验通过,可以继续执行业务逻辑。
请注意,这只是一个简单的示例,实际项目中你可能需要根据具体情况定义更复杂的验证规则,并适配你的业务逻辑。
这种方式使得请求参数校验变得非常方便,同时也提高了代码的可读性。
转载请注明出处:http://www.zyzy.cn/article/detail/7819/GoFrame