From c0b2c828604e06407b1bad32cfa942d2d86ec6a3 Mon Sep 17 00:00:00 2001 From: Taichi Sasaki Date: Mon, 13 Nov 2023 19:41:13 +0900 Subject: [PATCH] Make middleware mountable on http.NewMuxer() --- http/mux.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/http/mux.go b/http/mux.go index eafcb8a0db..b14084ef37 100644 --- a/http/mux.go +++ b/http/mux.go @@ -77,8 +77,12 @@ type ( ) // NewMuxer returns a Muxer implementation based on a Chi router. -func NewMuxer() ResolverMuxer { +// The middlewares will be mounted at the top level of the router. +func NewMuxer(middlewares ...func(http.Handler) http.Handler) ResolverMuxer { r := chi.NewRouter() + for _, middleware := range middlewares { + r.Use(middleware) + } r.NotFound(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { ctx := context.WithValue(req.Context(), AcceptTypeKey, req.Header.Get("Accept")) enc := ResponseEncoder(ctx, w)