Gin 中间件顺序:日志、恢复、鉴权、限流怎么排
Gin 中间件不是随便挂上去就完事。顺序会决定日志能不能记录 panic、限流是否覆盖未登录请求、鉴权失败是否仍有 request id。
我常用的顺序是:request id、访问日志、recover、CORS、限流、鉴权、业务路由。最外层先建立追踪信息,recover 要在业务之前,日志要能拿到最终状态码和耗时。
r.Use(RequestID())
r.Use(AccessLog())
r.Use(gin.Recovery())
r.Use(RateLimit())
api := r.Group("/api", Auth())限流放鉴权前还是后,要看目标。如果要保护登录接口和匿名流量,放前面;如果按用户额度限流,放鉴权后。
不要把业务判断塞进全局中间件。中间件越靠外,影响面越大,越应该只处理横切能力。
版权申明
本文系作者 @blogger 原创发布在Gin 中间件顺序:日志、恢复、鉴权、限流怎么排。未经许可,禁止转载。
评论
-- 评论已关闭 --
全部评论