package middleware import ( "github.com/gofiber/fiber/v2" "github.com/google/uuid" ) const RequestIDHeader = "X-Request-ID" // RequestID generates or extracts a request ID for each request func RequestID() fiber.Handler { return func(c *fiber.Ctx) error { reqID := c.Get(RequestIDHeader) if reqID == "" { reqID = uuid.New().String() } c.Locals("requestId", reqID) c.Set(RequestIDHeader, reqID) return c.Next() } } // GetRequestID extracts the request ID from context func GetRequestID(c *fiber.Ctx) string { if id, ok := c.Locals("requestId").(string); ok { return id } return "" }