上下文
接口 slim.Context
是用于当前 HTTP 请求的 Slim 处理器函数的上下文,它包括对请求和响应的引用、路由匹配的信息、运行时数据等,用于读取请求和写入响应。
提示
我们要区分 slim.Context
和 HTTP 请求上下文(http.Request.Context)的区别。
扩展上下文
因为 slim.Context 是一个接口,所以我们可以十分容易的扩展它。
定义我们自己的上下文:
扩展上下文
type CustomContext struct {
slim.Context
}
func (c *CustomContext) Foo() {
println("foo")
}
func (c *CustomContext) Bar() {
println("bar")
}
然后创建一个中间件来扩展默认的上下文,并将这个新的上下文传递给下游:
使用自定义上下文
s.Use(func(c slim.Context, next slim.HandlerFunc) error {
cc := &CustomContext{c}
return next(cc)
})