From 376839b264c7f77b2540ad9f83bd8baf44063f17 Mon Sep 17 00:00:00 2001 From: Alexander NeonXP Kiryukhin Date: Tue, 30 Jul 2024 01:16:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20Su?= =?UTF-8?q?bMux=20Group?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- group.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 group.go diff --git a/group.go b/group.go new file mode 100644 index 0000000..ad8f82a --- /dev/null +++ b/group.go @@ -0,0 +1,18 @@ +package mux + +import ( + "net/http" + "strings" +) + +func Group(mux *http.ServeMux, prefix string, group func(sm *http.ServeMux), middlewares ...Middleware) { + groupMux := http.NewServeMux() + group(groupMux) + if !strings.HasSuffix(prefix, "/") { + prefix += "/" + } + mux.Handle( + prefix, + http.StripPrefix(strings.TrimSuffix(prefix, "/"), Use(groupMux, middlewares...)), + ) +}