Промежуточное ПО на конкретном маршруте
Как в go-chi
установить промежуточное ПО на уровне отдельных маршрутов, а не только глобально для всех маршрутов
// Routes creates a REST router
func Routes() chi.Router {
r := chi.NewRouter()
r.Use(middleware.Captcha)
r.Post("/", Login)
return r
}
Как для Login
указать уникальное промежуточное программное обеспечение или исключить из общего промежуточного программного обеспечения?
1 ответ
Решение
У вас есть два варианта. Естественный способ, поддерживаемый любым роутером:
r.Post("/", middlewareFunc(Login))
Или, если вы хотите использовать специфичный для Chi способ, создайте новую группу для одной конкретной конечной точки:
loginGroup := r.Group(nil)
loginGroup.Use(middleware)
loginGroup.Post("/", Login)