请求参数绑定
// 参数绑定到结构体
s.BindHandler("/bindtest", func(r *ghttp.Request) {
type User struct{
UserName string `json:"username" params:"username"`
Password string `json:"password" params:"password"`
}
var user = new(User)
r.GetRequestToStruct(user)
r.Response.Write(user)
})
数据校验
https://goframe.org/util/gvalid/index
// 请求参数绑定+数据校验示例
s.BindHandler("/valid", func(r *ghttp.Request) {
type Info struct{
Name string `json:"name" params:"name" gvalid:"username@required|length:6,30"`
Age int `json:"age" params:"age" gvalid:"age@required|min:2"`
}
info := new(Info)
r. GetRequestToStruct(info)
// 数据校验
if err := gvalid.CheckStruct(info, nil); err != nil{
r.Response.WriteJson(err.Maps())
} else {
r.Response.WriteJson(info)
}
})
数据校验返回code等字段
s.BindHandler("/valid", func(r *ghttp.Request) {
type Info struct{
Name string `json:"name" params:"name" gvalid:"name@required|length:6,30"`
Age int `json:"age" params:"age" gvalid:"age@required|min:2"`
}
info := new(Info)
r. GetRequestToStruct(info)
// 数据校验
if err := gvalid.CheckStruct(info, nil); err != nil{
// 验证不通过
data := make(map[string]interface{})
data["code"] = 500
data["err"] = err.Maps()
data["data"] = nil
r.Response.WriteJson(data)
} else {
// 验证通过
data := make(map[string]interface{})
data["code"] = 200
data["err"]= nil
data["data"] = info
r.Response.WriteJson(data)
}
})