this answer的前半部分演示了一种模式,用于在两个处理程序方法之间共享一些每请求上下文。排序。
我正在寻找一种方法基本上这样做,但有两个以上的处理程序。
想象一下,我需要使用相同的每个请求上下文调用三个(或更多)http.HandlerFunc
:
不使用全局映射(例如gorilla / mux),使用标准http.Handler
接口有没有办法在这些函数之间传递每个请求的上下文?
答案 0 :(得分:1)
您可以使用您的上下文欺骗并包装Request.Body(ReaderCloser界面)。
以下是一个示例:webctx.go
当你想要你的上下文时,只需输入assert request.Body就是你的类型。 唯一的技巧是你的类型必须保持原始的主体并实现ReaderCloser方法......但这是最少量的代码。