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())

限流放鉴权前还是后,要看目标。如果要保护登录接口和匿名流量,放前面;如果按用户额度限流,放鉴权后。

不要把业务判断塞进全局中间件。中间件越靠外,影响面越大,越应该只处理横切能力。

分类: Gin 实战 标签: Gin 中间件 Web API

评论

-- 评论已关闭 --

全部评论