【问题标题】:Middleware on a specific route特定路由上的中间件
【发布时间】:2017-12-24 04:03:55
【问题描述】:

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

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

    r.Post("/", Login)

    return r
}

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

【问题讨论】:

  • 您可以像往常一样链接中间件。他们的文档说它完全实现了Router 接口

标签: http go middleware go-chi


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2021-03-05
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多