From 2a52fb6b882ac5b3faeea1ef4c05e711a562cdfb Mon Sep 17 00:00:00 2001 From: Muyao CHEN Date: Thu, 3 Oct 2024 13:48:36 +0200 Subject: [PATCH] feat(requestid): reqID in the header --- internal/pkg/middleware/requestid.go | 13 ++++++++++++- internal/pkg/middleware/requestid_test.go | 2 -- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/pkg/middleware/requestid.go b/internal/pkg/middleware/requestid.go index 308f7fd..ecd0ed1 100644 --- a/internal/pkg/middleware/requestid.go +++ b/internal/pkg/middleware/requestid.go @@ -2,8 +2,19 @@ package middleware import "github.com/gin-gonic/gin" +const requestID = "X-Request-Id" + func RequestID() gin.HandlerFunc { return func(ctx *gin.Context) { - ctx.Set("X-Request-Id", "123") + var rid string + + if rid = ctx.GetString(requestID); rid != "" { + // request id exists already + ctx.Next() + } + + if rid = ctx.GetHeader(requestID); rid != "" { + ctx.Set(requestID, rid) + } } } diff --git a/internal/pkg/middleware/requestid_test.go b/internal/pkg/middleware/requestid_test.go index a9f0014..a1ebc88 100644 --- a/internal/pkg/middleware/requestid_test.go +++ b/internal/pkg/middleware/requestid_test.go @@ -9,8 +9,6 @@ import ( "github.com/stretchr/testify/assert" ) -const requestID = "X-Request-Id" - type header struct { Key string Value string