Gin之获取path参数

2023-11-18

Gin之获取path参数

注:本文基于Windos系统上Go SDK v1.17.5、github.com/gin-gonic/gin v1.7.7依赖进行讲解

1.path参数介绍

path:即URL路径参数

2.获取一个":"path参数(Param方法)

image-20220211211458794

image-20220211212027319

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()
	r.GET("/users/:id", func(c *gin.Context) {
		id := c.Param("id")
		c.JSON(http.StatusOK, gin.H{
			"message": "ok",
			"id":      id,
		})
	})

	r.Run(":8080")
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 获取二个":"path参数(Param方法)

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)
func main() {
	r := gin.Default()
	r.GET("/user/search/:username/:address", func(c *gin.Context) {
		username := c.Param("username") //
		address := c.Param("address")
		c.JSON(http.StatusOK, gin.H{
			"message":  "ok",
			"username": username,
			"address":  address,
		})
	})

	r.Run(":8080")
}

image-20220204221824090

image-20220211210534035

image-20220211210606475

image-20220211210631229

image-20220211210932754

4.获取"*"path参数(Param方法)

image-20220211211658396

image-20220211211728819

image-20220211211911154

image-20220211211947392

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()
	r.GET("/user/search/:username/*address", func(c *gin.Context) {
		username := c.Param("username")
		address := c.Param("address")
		c.JSON(http.StatusOK, gin.H{
			"message":  "ok",
			"username": username,
			"address":  address,
		})
	})

	r.Run(":8080")
}

如果访问http://localhost:8080/user/search/:dafa的换,系统会被重定向到http://localhost:8080/user/search/:dafa/,浏览器并且输出:{“address”:“/”,“message”:“ok”,“username”:“:dafa”}

如果单独访问http://localhost:8080/user/search/:dafa/的话,浏览器输出:{“address”:“/”,“message”:“ok”,“username”:“:dafa”}

image-20220211213023497

image-20220211212620536

image-20220211212927318

image-20220211212653718

image-20220211212713643

5.获取一个":"path参数(ShouldBindUri方法)

package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	_ "github.com/gin-gonic/gin/binding"
)

type Person struct {
	Id string `uri:"id"`
}

func startPage(c *gin.Context) {
	var person Person
	t := c.ShouldBindUri(&person)
	if t != nil {
		fmt.Println(t)
	}

	fmt.Println(person.Id)
	c.String(200, "Success")
}
func main() {
	r := gin.Default()

	r.GET("/user/:id", startPage)
	r.Run()
}

image-20220211171350277

image-20220211171417747

image-20220211171442264

image-20220413090040138

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gin之获取path参数 的相关文章

  • selenium在爬虫中的使用

    selenium在爬虫中的使用 欢迎大家去博客冰山一树Sankey 浏览效果更好 直接右上角搜索该标题即可 CSDN主页 CSDN主页 冰山一树Sankey 博客园主页 博客园主页 冰山一树Sankey 一 selenium概述 1 1 定

随机推荐

  • 使用jemeter进行压力测试关注的指标

    一 压测设置 线程数 并发数量 能跑多少量 具体说是一次存在多少用户同时访问 Rame Up Period in seconds 表示JMeter每隔多少秒发动并发 理解成准备时长 设置虚拟用户数需要多长时间全部启动 如果线程数是20 准备
  • pta basic level 1002

    include
  • Java的时间复杂度和空间复杂度

    时间复杂度和空间复杂度是算法效率的两个重要指标 也是在进行程序设计和性能优化时需要考虑的因素 下面分别介绍 Java 的时间复杂度和空间复杂度 1 时间复杂度 时间复杂度是算法运行时的时间消耗 通常用大 O 表示 Java 中常见的时间复杂
  • 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器

    第1章 引言 随着互联网应用的广泛普及 海量数据的存储和访问成为了系统设计的瓶颈问题 对于一个大型的 互联网应用 每天几十亿的PV无疑对数据库造成了相当高的负载 对于系统的稳定性和扩展性造成了极大的问题 通过数据切分来提高网站性能 横向扩展
  • Tensorflow SSD实现与理解

    Tensorflow SSD实现与理解 1 论文解读 1 1 模型特点 2 1 训练特点 2 网络结构 2 1 特征提取卷积层 2 2 anchor box产生 3 TensorFlow 实现 3 1 运行图片检测 3 2 运行camera
  • django指定本地,局域网,外网访问

    本地和局域网访问 设置settings ALLOWED HOSTS 启动0 0 0 0 8000启动 其他局域网下使用 服务电脑的ip ipconfig获取 ipv4 192 168 x x 端口 外网访问 1 部署到云服务器 2 内网做端
  • Android开发从零开始

    http blog csdn net coolszy http 115 com folder faexml7y7 http www cnblogs com coolszy category 288258 html
  • 点云 pillar 形状的数据搜索

    读取点云数据 将点云数据中的某一个维度设置为0 生成一个新的点云数据 并建立其上的KDTree索引 给定查询点并对查询点进行半径搜索 并将半径邻域内的点渲染为红色 最后得到就是该点范围内 一个圆柱形的附近点集合 最后将可视化结果展示出来 代
  • 在Java平台中创建、使用分数类

    由于计算机的运行机制不像人类的大脑 所以在计算时并不能无限精度地运算下去 只能在一定的进度范围内进行数值求解 因此 至今计算机里都没有分数这种数据类型 不过我们为你可以借助Java类来自行定义分数类 进行分数的相关计算 下面直接给代码 pu
  • JDK安装指导

    Oracle官网地址 https www oracle com java版本查询 这里仅标识了java19和java17 java archived 查看更多 随便进入一个 根据后缀提示下载对应包即可 Linux安装 示例 java 1 8
  • [QT]day3

    1 一个闹钟 widget cpp include widget h include ui widget h include
  • FPGA的基本设计流程

    FPGA开发主要包括系统设计 设计输入 功能仿真 综合优化 综合后仿真 实现与布局布线 时序方针与验证 板级方针与验证 芯片编程与调试等9个部分 如下图所示 1 电路设计 在系统设计之前 首先要进行的是方案论证 系统设计和FPGA芯片选择等
  • PCL—低层次视觉—点云分割(RanSaC)

    点云分割 点云分割可谓点云处理的精髓 也是三维图像相对二维图像最大优势的体现 不过多插一句 自Niloy J Mitra教授的Global contrast based salient region detection出现 最优分割到底鹿死
  • 教程来啦!5分钟快速学习使用Tbarcode Office创建条码!

    Tbarcode Office是一款具有强大功能的条形码插件 无论在 Microsoft Word 还是在 Excel 中设置条码都非常的轻松 TBarCode Office 无缝集成在Microsoft Word和Microsoft Ex
  • Mybatis-Plus 实现用户ID自增出现的问题

    问题描述 项目基于 SpringBoot MybatisPlus 3 5 2 使用数据库自增ID时 出现重复键的问题 自增ID介绍 1 局部式配置 如下述代码所示 通过 TableId 字段来指定自增字段 Value 为数据库字段名 可以大
  • Kotlin与Java的异同(一)

    本文章只为了方便查阅 文章目录 Kotlin简介 Kotlin与Java的异同 1 函数 2 变量 变量类型 可变变量 不可变变量 3 类和属性 有参数的构造方法 setter 和 getter 4 枚举和 when 枚举 when 5 w
  • vim打开文件并跳转

    vim filename n 打开文件并跳转到指定行 vim filename pattern 打开文件并跳转到指定匹配字符
  • openpose&3d-pose-baseline搭建

    1 openpose如果遇到gstreamer的问题 把gstreamer 1 0 apt remove掉以后 重新装gstreamer 0 1 并且打开opencv cmakelist里的相关选项 然后重新make opencv 就解决了
  • 剑指offer-解决面试题的思路

    大家好 我是Nefelibat 在博客上记录算法笔记 是因为想push自己每天坚持刷几道算法题 同时也希望能把自己总结到的经验分享给大家 希望大家阅读愉快 目录 在写代码之前明确自己做的事情是什么 该怎么做 画图让抽象问题形象化 题目 二叉
  • Gin之获取path参数

    文章目录 Gin之获取path参数 1 path参数介绍 2 获取一个 path参数 Param方法 3 获取二个 path参数 Param方法 4 获取 path参数 Param方法 5 获取一个 path参数 ShouldBindUri