gin.Context 上下文
gin.Context 是 Gin 里最常见的对象。
每次请求进来,Gin 都会创建一个对应的上下文对象,然后传给你的处理函数。
这里的 c 就是 *gin.Context。
一、Context 能做什么
常用能力:
二、Context 只属于当前请求
不要把 *gin.Context 存到全局变量或后台 goroutine 里长期使用。
错误示例:
这样做会让请求之间互相影响,也可能产生数据竞争。
三、中间件里传递数据
中间件可以把解析出来的数据放进 Context。
接口里读取:
四、Context 和标准库 Context
Gin 的 gin.Context 和 Go 标准库的 context.Context 不是同一个东西。
常见区别:
如果业务层需要标准库 context.Context,可以从请求里取:
推荐做法:
HTTP 层用 gin.Context,业务层尽量使用标准库 context.Context,这样代码更容易测试和复用。

