gofream框架03 参数绑定

请求参数绑定

// 参数绑定到结构体
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)
    }
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 842评论 0 0
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 3,061评论 1 3
  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 3,621评论 0 7
  • SpringMVC原理分析 Spring Boot学习 5、Hello World探究 1、POM文件 1、父项目...
    jack_jerry阅读 1,362评论 0 1
  • 阿里巴巴 JAVA 开发手册 1 / 32 Java 开发手册 版本号 制定团队 更新日期 备 注 1.0.0 阿...
    糖宝_阅读 7,679评论 0 5