特定路由上的中间件

Middleware on a specific route

go-chi 一样,在各个路由级别设置中间件,而不是全局设置所有路由

// Routes creates a REST router
func Routes() chi.Router {
    r := chi.NewRouter()
    r.Use(middleware.Captcha)

    r.Post("/", Login)

    return r
}

如何Login指定唯一中间件或从通用中间件中排除?

你有两个选择。任何路由器都支持的自然方式:

r.Post("/", middlewareFunc(Login))

或者,如果您想使用特定于 Chi 的方式,请为一个特定端点创建一个新组:

loginGroup := r.Group(nil)
loginGroup.Use(middleware)
loginGroup.Post("/", Login)