Промежуточное ПО на конкретном маршруте

Как в 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)
Другие вопросы по тегам