阅读 144

Gin框架之参数绑定的实现

为了能够更方便的获取请求相关参数,提高开发效率,本文主要介绍了Gin框架之参数绑定的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

为了能够更方便的获取请求相关参数,提高开发效率,我们可以基于请求的Content-Type识别请求数据类型并利用反射机制自动提取请求中QueryStringform表单JSONXML等参数到结构体中。 下面的示例代码演示了.ShouldBind()强大的功能,它能够基于请求自动提取JSONform表单QueryString类型的数据,并把值绑定到指定的结构体对象。

以下示例分别是对QueryString、form、json进行参数绑定。

注意:

1、结构体内部属性名大写

2、加地址符:

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package main
 
import (
    "github.com/gin-gonic/gin"
    "net/http"
)
 
type User struct {
    Username string `json:"user" form:"userform"`
    Password string `json:"pwd" form:"pwdform"`
}
 
func main() {
    r := gin.Default()
    var u User
    //queryString数据绑定
    r.GET("/user", func(c *gin.Context) {
        //参数绑定
        err := c.ShouldBind(&u)
        if err == nil {
            c.JSON(http.StatusOK, gin.H{
                "user": u.Username,
                "pwd":  u.Password,
            })
        }
    })
    //form表单数据绑定
    r.POST("/form", func(c *gin.Context) {
        //参数绑定
        err := c.ShouldBind(&u)
        if err == nil {
            c.JSON(http.StatusOK, gin.H{
                "user": u.Username,
                "pwd":  u.Password,
            })
        }
    })
    //form表单数据绑定
    r.POST("/json", func(c *gin.Context) {
        //参数绑定
        err := c.ShouldBind(&u)
        if err == nil {
            c.JSON(http.StatusOK, gin.H{
                "user": u.Username,
                "pwd":  u.Password,
            })
        }
    })
    r.Run(":9090")
}

调试:

运行结果使用postman模拟,分别是:

对querystring进行参数绑定结果:

对form表单进行参数绑定结果:

对json进行参数绑定结果:

到此这篇关于Gin框架之参数绑定的实现的文章就介绍到这了

原文链接:https://www.cnblogs.com/wind-zhou/p/13044729.html


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐