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中间件的设计允许你执行一些预处理或后处理逻辑,例如身份验证、日志记录等。

相关推荐
m0_736919102 分钟前
C++中的委托构造函数
开发语言·c++·算法
lsx20240617 分钟前
Python3 SMTP发送邮件教程
开发语言
懈尘18 分钟前
从 Java 1.7 到 Java 21:逐版本深入解析新特性与平台演进
java·开发语言
凉辰21 分钟前
使用uni.createInnerAudioContext()播放指定音频(踩坑分享功能)
开发语言·javascript·音视频
Hello.Reader22 分钟前
Rocket Fairings 实战把全局能力做成“结构化中间件”
中间件·rust·rocket
hello 早上好22 分钟前
05_Java 类加载过程
java·开发语言
PPPPPaPeR.34 分钟前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
橙露37 分钟前
Java并发编程进阶:线程池原理、参数配置与死锁避免实战
java·开发语言
froginwe1137 分钟前
C 标准库 - `<float.h>`
开发语言
2501_916008891 小时前
深入解析iOS机审4.3原理与混淆实战方法
android·java·开发语言·ios·小程序·uni-app·iphone