fix: use existing x-header-id header if set (#16)

This commit is contained in:
Thomas Anderson
2024-03-18 19:42:06 -04:00
committed by GitHub
parent 74cddec200
commit 41264887e5
+7 -2
View File
@@ -15,6 +15,8 @@ import (
const ( const (
customAttributesCtxKey = "slog-gin.custom-attributes" customAttributesCtxKey = "slog-gin.custom-attributes"
requestIDCtx = "slog-gin.request-id" requestIDCtx = "slog-gin.request-id"
// Formatted with http.CanonicalHeaderKey
requestIDHeaderKey = "X-Request-Id"
) )
var ( var (
@@ -109,10 +111,13 @@ func NewWithConfig(logger *slog.Logger, config Config) gin.HandlerFunc {
params[p.Key] = p.Value params[p.Key] = p.Value
} }
requestID := uuid.New().String() requestID := c.GetHeader(requestIDHeaderKey)
if config.WithRequestID { if config.WithRequestID {
if requestID == "" {
requestID = uuid.New().String()
c.Header(requestIDHeaderKey, requestID)
}
c.Set(requestIDCtx, requestID) c.Set(requestIDCtx, requestID)
c.Header("X-Request-ID", requestID)
} }
// dump request body // dump request body