【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")
}
相关推荐
GDAL3 小时前
gin.Default() 深入全面讲解
golang·go·gin
GDAL1 天前
为什么选择gin?
golang·gin
ZHENGZJM5 天前
Gin 鉴权中间件设计与实现
中间件·gin
ZHENGZJM5 天前
认证增强:图形验证码、邮箱验证与账户安全
安全·react.js·go·gin
女王大人万岁6 天前
Golang实战gin-swagger:自动生成API文档
服务器·开发语言·后端·golang·gin
so2F32hj27 天前
一款Go语言Gin框架DDD脚手架,适合快速搭建项目
开发语言·golang·gin
yangyanping201087 天前
Go语言学习之 Gin 生产级 flag命令行参数解析库
开发语言·golang·gin
先跑起来再说9 天前
Gin 从入门到实践:路由与 Context 深入解析
go·gin
我爱吃土豆19 天前
Gin响应形式
驱动开发·gin