我正在使用有价值的rootHandler
处理产生的错误。我想知道如何在我的api可以服务的每个端点上使用此处理程序。
r := mux.NewRouter()
r.Handle("/api/auth", rootHandler(authUser)).Methods("POST")
r.HandleFunc("/api/endpoint1", function1).Methods("POST")
r.HandleFunc("/api/endpoint2", function2).Methods("POST")
s := &http.Server{
Handler: r,
Addr: "127.0.0.1:8080",
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
我必须使用rootHanlder(functionName)包装每个路由函数,还是有办法将其应用于每个路由?
取决于rootHandler
的确切结构,您可能可以将其设置为中间件:
func GetRootHandlerMW(authUser SomeType) func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Do what needs to be done?
next.ServeHTTP(w, r)
})
}
}
...
r.Use(GetRootHandlerMW(authUser))