package middleware import ( "strings" "github.com/gin-gonic/gin" "github.com/google/uuid" "switchbot-api/internal/transport/http/contextkeys" ) const RequestIDHeader = "X-Request-Id" func RequestID() gin.HandlerFunc { return func(c *gin.Context) { requestID := strings.TrimSpace(c.GetHeader(RequestIDHeader)) if requestID == "" { requestID = uuid.NewString() } ctx := contextkeys.WithRequestID(c.Request.Context(), requestID) c.Request = c.Request.WithContext(ctx) c.Writer.Header().Set(RequestIDHeader, requestID) c.Next() } }