美文网首页
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