美文网首页
gofream框架03 参数绑定

gofream框架03 参数绑定

作者: 王哈哈就很棒 | 来源:发表于2019-12-19 20:15 被阅读0次

请求参数绑定

// 参数绑定到结构体
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)
    }
})

相关文章

网友评论

      本文标题:gofream框架03 参数绑定

      本文链接:https://www.haomeiwen.com/subject/iwevnctx.html