【Gin】参数处理练习题

学生编号动态获取接口

题目描述

使用 Gin 框架编写 Web 服务,定义 GET 路由 /student/:id,通过 c.Param("id") 获取学生编号,返回字符串:学生编号:xxx,立志成才,报效祖国,服务监听 8080 端口。

访问输出示例

http://localhost:8080/student/2025001

学生编号:2025001,立志成才,报效祖国

实现代码

Go 复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()

	r.GET("/student/:id", func(c *gin.Context) {
		id := c.Param("id")
		c.String(200, "学生编号:%s,立志成才,报效祖国", id)
	})

	r.Run(":8080")
}

省份和城市展示接口

题目描述

编写 Gin 服务,定义 GET 路由 /city/:pro/:city,获取省份城市 两个参数,返回字符串:省份:xxx,城市:xxx,热爱家乡,建设祖国,服务监听 8080 端口。

访问输出示例

http://localhost:8080/city/四川/成都

省份:四川,城市:成都,热爱家乡,建设祖国

实现代码

Go 复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()

	// 双参数路由
	r.GET("/city/:pro/:city", func(c *gin.Context) {
		pro := c.Param("pro")
		city := c.Param("city")
		c.String(200, "省份:%s,城市:%s,热爱家乡,建设祖国", pro, city)
	})

	r.Run(":8080")
}

资源路径通配符匹配接口

题目描述

编写 Gin 服务,定义 GET 路由 /file/*path,使用通配符 *path 匹配任意文件或子目录路径,通过 c.Param("path") 获取完整路径,返回字符串:请求资源路径:xxx,正在处理文件请求...,服务监听 8080 端口。

访问输出示例

http://localhost:8080/file/images/photo.jpg

请求资源路径:/images/photo.jpg,正在处理文件请求...

实现代码

Go 复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()

	// 通配符匹配任意文件/目录路径
	r.GET("/file/*path", func(c *gin.Context) {
		path := c.Param("path")
		c.String(200, "请求资源路径:%s,正在处理文件请求...", path)
	})

	r.Run(":8080")
}

多参数信息筛选接口

题目描述

编写 Gin 服务,定义 GET 路由 /info,获取 nameagecity 三个参数,返回拼接字符串:姓名:xxx,年龄:xxx,城市:xxx,服务监听 8080 端口。

访问输出示例

http://localhost:8080/info?name=李四&age=22&city=上海

姓名:李四,年龄:22,城市:上海

实现代码

Go 复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()

	r.GET("/info", func(c *gin.Context) {
		name := c.Query("name")
		age := c.Query("age")
		city := c.Query("city")
		c.String(200, "姓名:%s,年龄:%s,城市:%s", name, age, city)
	})

	r.Run(":8080")
}

用户页码查询接口

题目描述

编写 Gin 服务,定义 GET 路由 /user/list,通过 c.DefaultQuery 获取查询参数 page

默认值为 1 ,返回字符串:当前页码:xxx,服务监听 8080 端口。

访问输出示例

http://localhost:8080/user/list?page=3

当前页码:3

http://localhost:8080/user/list

当前页码:1

实现代码

Go 复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()

	r.GET("/user/list", func(c *gin.Context) {
		// 带默认值的查询参数
		page := c.DefaultQuery("page", "1")
		c.String(200, "当前页码:%s", page)
	})

	r.Run(":8080")
}

用户注册表单参数接收

题目描述

使用 Gin 框架编写一个 POST 接口 /register,用于接收用户注册的表单参数:

  • username:用户名,必填 ,使用 PostForm 获取
  • password:密码,必填 ,使用 PostForm 获取
  • age:年龄,选填 ,使用 DefaultPostForm 获取,默认值为 18
  • gender:性别,选填 ,使用 DefaultPostForm 获取,默认值为 保密

接口返回拼接后的字符串,服务监听 8080 端口。

访问输出示例

POST 请求 /register,参数:

username=张三

password=123456

age=20

gender=男

返回:

用户名:张三,密码已接收,年龄:20,性别:男

实现代码

Go 复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()

	r.POST("/register", func(c *gin.Context) {
		// 必填参数,使用 PostForm
		username := c.PostForm("username")
		password := c.PostForm("password")

		// 选填参数,带默认值,使用 DefaultPostForm
		age := c.DefaultPostForm("age", "18")
		gender := c.DefaultPostForm("gender", "保密")

		// 返回结果
		c.String(200, "用户名:%s,密码已接收,年龄:%s,性别:%s",
			username, age, gender)
	})

	r.Run(":8080")
}
相关推荐
必胜刻5 小时前
四大请求方式
gin
lUie INGA2 天前
Go-Gin Web 框架完整教程
前端·golang·gin
止语Lab5 天前
Gin 很好,但你的项目可能需要更多
golang·gin
迷茫运维路13 天前
云枢运维管理系统
运维·golang·kubernetes·gin·casbin
我不是8神13 天前
gin框架源码详细解读
gin
有浔则灵14 天前
Gin框架参数绑定与校验:从入门到精通
gin
必胜刻14 天前
Gin + WebSocket 连接池
websocket·网络协议·gin
不会聊天真君64718 天前
介绍(gin笔记第一期)
笔记·gin
ZHENGZJM19 天前
Server-Sent Events (SSE) 接口实现
架构·go·gin
ZHENGZJM19 天前
统一响应封装与 API 错误处理
react.js·go·gin