golang 中间件使用

1、自定义中间件函数

Go 复制代码
func CustomMiddleware() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 在请求之前执行的逻辑
		fmt.Println("执行自定义中间件 - 请求之前")

		// 调用链中的下一个处理程序
		c.Next()

		// 在请求之后执行的逻辑
		fmt.Println("执行自定义中间件 - 请求之后")
	}
}

2、使用中间件

Go 复制代码
func main() {
	// 创建一个Gin引擎
	router := gin.Default()

	// 使用自定义中间件
	router.Use(CustomMiddleware())

	// 定义路由
	router.GET("/hello", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "Hello, Gin Middleware!",
		})
	})

	// 启动服务器
	router.Run(":8080")
}

在上述示例中,CustomMiddleware函数返回一个gin.HandlerFunc,它是一个用于Gin中间件的类型。在中间件函数中,你可以在处理请求之前和之后执行特定的逻辑。在示例中,我们简单地在控制台打印一些信息。

在main函数中,通过router.Use方法将自定义中间件添加到Gin引擎。中间件的执行顺序与它们添加到引擎的顺序相同。

当访问/hello路由时,中间件会在处理请求之前和之后执行。

请注意,Gin中间件的设计允许你执行一些预处理或后处理逻辑,例如身份验证、日志记录等。

相关推荐
Hello.Reader3 小时前
Three.js / Cesium 卡顿怎么办?把三维渲染搬到 GPU 服务器
服务器·开发语言·javascript
Solange__3 小时前
AI世界模型、3D场景生成和游戏引擎怎么选?按5类任务比较交互、物理与导出
开发语言·人工智能·游戏·平面·3d·自然语言处理·游戏引擎
椒颜皮皮虾྅4 小时前
模型部署不再卡在环境上:DeploySharp 四大推理引擎与 Windows/Linux 离线交付实战
linux·运维·开发语言·人工智能·windows·计算机视觉·cuda
codebolt4 小时前
C++程序crash分析和内存检测
开发语言·c++
椒颜皮皮虾྅4 小时前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda
昂好的day4 小时前
C# 同步异步与多线程:Thread / Task / 线程池一次讲透(上篇)
开发语言·windows·c#
kingx34 小时前
网络安全事件应急响应:X集团 WebServer 入侵溯源与处置
中间件·web·应急响应·取证·恶意样本
Java后端的Ai之路4 小时前
01、Java并发编程:学习攻略如何才能学好并发编程?
java·开发语言·学习
OxYGC5 小时前
[工程] PHP2Shell 漏洞解析:两条 PHP 内核 RCE,为什么应用层的防护全部失效
android·开发语言·php
小徐不徐说5 小时前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计