К сожалению, на момент написания этой статьи функции промежуточного программного обеспечения вызывались после сопоставления URL в gorilla/mux
.
Mux поддерживает добавление промежуточного программного обеспечения к маршрутизатору, которые выполняютсяв том порядке, в котором они добавлены, если найдено совпадение, включая его подуровни.
Я бы предложил использовать пример по указанной вами ссылке.
например,
func CaselessMatcher(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
r.URL.Path = strings.ToLower(r.URL.Path)
next.ServeHTTP(w, r)
})
}
Тогда просто оберните ваш мультиплексор.
r := mux.NewRouter()
//...
handler := CaselessMatcher(r)
На самом деле это не плохо для ИМО.