您现在的位置是:群英 > 开发技术 > 编程语言
Gin框架中如何实现参数绑定呢?
Admin发表于 2022-07-04 17:14:52880 次浏览
相信很多人对“Gin框架中如何实现参数绑定呢?”都不太了解,下面群英小编为你详细解释一下这个问题,希望对你有一定的帮助


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

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

注意:

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

2、加地址符:

代码:

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框架中如何实现参数绑定呢?”已经有了进一步的了解,更多相关的问题,欢迎关注群英网络或到群英官网咨询客服。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: gin
相关信息推荐
2022-08-13 17:50:42 
摘要:给大家带来一篇关于实例分享PHP将数据导出Excel表中(投机型)的相关教程文章,内容涉及到php、excel、PHP将数据导出Excel表中的实例(投机型)等相关内容,更多关于PHP将数据导出Excel表中的实例(投机型)的内容希望能够帮助到大家。
2022-12-06 17:50:05 
摘要:php进行进制转换补位的方法:1、通过binoct()将二进制转为八进制;2、通过bindec()将二进制转为十进制;3、通过binhex()将二进制转为十六进制;4、通过octbin()将八进制转为二进制;5、通过octdec()将八进制转为十进制;6、通过octhex()将八进制转为十六进制等等。
2022-05-16 11:29:42 
摘要:本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了匿名函数的相关问题,还包括了嵌套与递归的相关内容,希望对大家有帮助。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部