gin框架使用系列之二——uri占位符和占位符变量的获取

一、url占位符介绍

  url占位符指的是在url中使用变量的方式,尤其是在Restful的url兴起以后,占位符的方式使用的更加的普遍,具体来说,就是在url中将数据的内容放入其中,而且这个内容还可以随着不同的数据的变化,如下是常用的带有url占位符的方式:

// 修改id为1的数据
PUT http://localhost:8080/user/1
// 删除id为2的数据
DELETE http://localhost:8080/user/2

二、gin中使用url的占位符

  在gin中,在url绑定的时候,用 :name 的方式来绑定占位符,如下所示

route.GET("/:name/:id", func(c *gin.Context))

三、单独获取占位符中的变量值

  在gin中,可以调用传入参数c的id := c.Param(“id”)的方式来获取对应的变量的值

	router.GET("/:name/:id", func(c *gin.Context) {
		id := c.Param("id")
		name := c.Param("name")

		c.JSON(http.StatusOK, gin.H{
			"id":   id,
			"name": name,
		})
	})

运行上面的代码,当我们在浏览器中输入http://localhost:8080/liming/123时,会得到取出来的变量信息:
在这里插入图片描述

三、用变量绑定的方式来获取占位符

gin还可以将占位符变量直接绑定到具体的对象中,同时还可以增加具体的验证,首先我们需要编写一个承载变量的结构体,在对应字段的tag中写上对应的转换信息

type Person struct {
	// uri后面是uri中变量的名称,binding是校验信息
	// 实例中id和name是必须的
	ID   string `uri:"id" binding:"required"`
	Name string `uri:"name" binding:"required"`
}

可以使用下面的方法将url注入到gin中

router.GET("/bind/:name/:id", func(c *gin.Context) {
		var person Person
		if err := c.ShouldBindUri(&person); err != nil {
			c.JSON(400, gin.H{"msg": err})
			return
		}
		c.JSON(200, gin.H{"name": person.Name, "uuid": person.ID})
	})

这个时候,当我们在浏览器输入http://localhost:8080/bind/liuming/123时,返回如下信息
在这里插入图片描述


后记
  个人总结,欢迎转载、评论、批评指正

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值