From a02a8bc374c64b09098507caa750259b3701f49e Mon Sep 17 00:00:00 2001 From: hhs <386998068@qq.com> Date: Sun, 21 Jun 2026 22:01:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=20Gin=20trace=20?= =?UTF-8?q?=E4=B8=AD=E9=97=B4=E4=BB=B6=E7=94=9F=E6=88=90=E5=B9=B6=E6=B3=A8?= =?UTF-8?q?=E5=85=A5=20trace=20ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/trace/middleware.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 backend/internal/trace/middleware.go diff --git a/backend/internal/trace/middleware.go b/backend/internal/trace/middleware.go new file mode 100644 index 0000000..0b92262 --- /dev/null +++ b/backend/internal/trace/middleware.go @@ -0,0 +1,17 @@ +package trace + +import "github.com/gin-gonic/gin" + +// TraceMiddleware 为每个 HTTP 请求生成 trace ID 并注入 context +func TraceMiddleware() gin.HandlerFunc { + return func(c *gin.Context) { + traceID := GenerateTraceID() + ctx := WithTraceID(c.Request.Context(), traceID) + ctx = WithRequestID(ctx, traceID) // REST: trace_id == request_id + + c.Request = c.Request.WithContext(ctx) + c.Header("X-Trace-ID", traceID) // 返回给客户端用于排查 + + c.Next() + } +}