gpt4 book ai didi

go - 如何包装自定义 HandlerFunc

转载 作者:IT王子 更新时间:2023-10-29 01:47:48 27 4
gpt4 key购买 nike

我已经定义了一个CustomHandler(实现ServerHTTP的结构,并且有一个返回错误的HandlerFunc)

type CustomHandler struct{
HandlerFunc func(w http.ResponseWriter, r *http.Request) error
}

type (c CustomHandler) ServerHTTP(w http.ResponseWriter, r *http.Request) {
err := c.Handeler.ServerHttp(w, r)
// Handler error
}

如何包装我的 CustomHandler

我试过了,但我一直没有得到足够的论据。

func myMiddle(h CustomHandler) CustomHandler {
return h.CusomHandlerFunc(func(w http.ResponseWriter, r *http.Request) error {
h.ServerHTTP(w, r)
return nil
})
}

最佳答案

你可以简单地这样做:

type handler func(w http.ResponseWriter, r *http.Request) error

func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if err := h(w, r); err != nil {
...
}
}

像这样使用它:

func home(w http.ResponseWriter, r *http.Request) error {
...
}

func main() {
http.Handle("/", handler(home))
}

关于go - 如何包装自定义 HandlerFunc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38818005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com