У меня есть следующий код:
apiRouter := mux.NewRoute().PathPrefix("/").Subrouter()
// Bucket router
bucket := apiRouter.PathPrefix("/{bucket}").Subrouter()
bucket.Methods("HEAD").Path("/{object:.+}").HandlerFunc(
api.HeadObjectHandler)
// Similarly handle many more methods
Я пытаюсь добавить сбор статистики поверх всех операций, которые обрабатываются подпунктом 'bucket'.Эта структура сбора статистики будет нуждаться в имени 'bucket', которое передается всем обработчикам, используемым bucket.
Есть ли способ добавить оболочку для подчиненного маршрутизатора в Go?Я нашел несколько похожих вопросов:
(i) Использование промежуточного программного обеспечения с мультипотоколами Golang Gorilla Но ответ на поставленный выше вопрос можно использовать только со статическим префиксом, тогда как я хочу знатьимя сегмента, совпадающее с "/ {bucket}"
(ii) Эта является еще одной ссылкой, которая решает тот же вопрос с использованием нового объекта мультиплексирования.Это может сработать, но в коде это выглядит довольно округло.Я новичок в golang, и я изменяю небольшую часть большей кодовой базы, поэтому я не уверен насчет влияния оставшегося кода при использовании первого объекта mux.
Есть ли способделать то, что мне нужно, без использования решения в (ii)?