请求流程往往会在上下文中共享一些自定义设置的变量,例如在请求开始之前通过中间件设置一些变量,随后在路由服务方法中可以获取该变量并相应对一些处理。这种需求非常常见。在GF
框架中,我们推荐使用Context
上下文对象来处理流程共享的上下文变量,甚至将该对象进一步传递到依赖的各个模块方法中。该Context
对象类型实现了标准库的context.Context
接口,该接口往往会作为模块间调用方法的第一个参数,该接口参数也是Golang
官方推荐的在模块间传递上下文变量的推荐方式。
方法列表:
Code Block | ||
---|---|---|
| ||
func (r *Request) GetCtx() context.Context |
...
func (r *Request) SetCtx(ctx context.Context) |
...
func (r *Request) GetCtxVar(key interface{}, def ...interface{}) *gvar.Var func (r *Request) SetCtxVar(key interface{}, value interface{}) |
...
简要说明:
GetCtx
方法用于获取当前的context.Context
对象,作用同Context
方法。SetCtx
方法用于设置自定义的context.Context
上下文对象。GetCtxVar
方法用于获取上下文变量,并可给定当该变量不存在时的默认值。SetCtxVar
方法用于设置上下文变量。
...