如何在gin框架中利用结构体来获取参数
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章主要介绍"如何在gin框架中利用结构体来获取参数",在日常操作中,相信很多人在如何在gin框架中利用结构体来获取参数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月06日如何在gin框架中利用结构体来获取参数
这篇文章主要介绍"如何在gin框架中利用结构体来获取参数",在日常操作中,相信很多人在如何在gin框架中利用结构体来获取参数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何在gin框架中利用结构体来获取参数"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
我们在写http请求的时候都会遇到后端的Handler是如何来接受请求的参数,我们在请求的时候有表单请求,ajax请求(参数是json),如下:
http://localhost:8080/bind?name=tim&age=1
在gin框架中我们是怎么利用结构体来获取参数呢? 其实很简单我们直接看代码
engine.GET("/bind", handler.BindHandler)package handlerimport ( "fmt" "github.com/gin-gonic/gin")// 定义结构体type Member struct { Name string `form:"name"` Age int `form:"age"`}func BindHandler(c *gin.Context) { m := &Member{} c.Bind(m) fmt.Println(m) c.JSON(200, gin.H{ "code": "ok", })}
就是利用Bind函数将参数和结构体进行绑定
// Bind checks the Content-Type to select a binding engine automatically,// Depending the "Content-Type" header different bindings are used:// "application/json" --> JSON binding// "application/xml" --> XML binding// otherwise --> returns an error.// It parses the request's body as JSON if Content-Type == "application/json" using JSON or XML as a JSON input.// It decodes the json payload into the struct specified as a pointer.// It writes a 400 error and sets Content-Type header "text/plain" in the response if input is not valid.func (c *Context) Bind(obj interface{}) error { b := binding.Default(c.Request.Method, c.ContentType()) return c.MustBindWith(obj, b)}
Bind的注释可以看出如何绑定和绑定的格式和Content-Type有很大的关系,从源码可以看出有很多类型格式的数据都都可以进行绑定
// BindJSON is a shortcut for c.MustBindWith(obj, binding.JSON).func (c *Context) BindJSON(obj interface{}) error { return c.MustBindWith(obj, binding.JSON)}// BindXML is a shortcut for c.MustBindWith(obj, binding.BindXML).func (c *Context) BindXML(obj interface{}) error { return c.MustBindWith(obj, binding.XML)}// BindQuery is a shortcut for c.MustBindWith(obj, binding.Query).func (c *Context) BindQuery(obj interface{}) error { return c.MustBindWith(obj, binding.Query)}// BindYAML is a shortcut for c.MustBindWith(obj, binding.YAML).func (c *Context) BindYAML(obj interface{}) error { return c.MustBindWith(obj, binding.YAML)}// BindHeader is a shortcut for c.MustBindWith(obj, binding.Header).func (c *Context) BindHeader(obj interface{}) error { return c.MustBindWith(obj, binding.Header)}// BindUri binds the passed struct pointer using binding.Uri.// It will abort the request with HTTP 400 if any error occurs.func (c *Context) BindUri(obj interface{}) error { if err := c.ShouldBindUri(obj); err != nil { c.AbortWithError(http.StatusBadRequest, err).SetType(ErrorTypeBind) // nolint: errcheck return err } return nil}
到此,关于"如何在gin框架中利用结构体来获取参数"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
参数
结构
框架
学习
时候
更多
格式
帮助
实用
很大
接下来
代码
函数
就是
数据
文章
方法
注释
源码
理论
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2021软件开发行业供需
深圳应用网络技术学院哪家好
数据库的管护研究
足疗店无线点餐机软件开发
第五空间网络安全观后报告
神圣导航软件开发
常州网络软件开发一体化
内蒙古剑仙软件开发有限公司
武侯区丰汇软件开发服务部
数据库信息修改步骤
开展网络安全教育简讯
服务器开机卡在一个横杠
苹果机pr读不到服务器
软件开发工作的个人理解
邮箱服务器填写
青浦区口碑好软件开发采购信息
10年前的旧电脑做电视数据库
npm怎么开启服务器
文件服务器管理器添加角色
机顶盒ntp服务器连接异常
星际争霸2登入无法连接服务器
恒指外盘交易系统软件开发
镇街网络安全宣传周报道
午夜猎魂自定义服务器
大公司网络需要什么服务器
南京智能软件开发规范
数据库关键字类型
传奇数据库编辑器2019v2
黄岛区ios软件开发外包公司
服务器防护app