package middleware import ( "crypto/rand" "encoding/hex" "github.com/gin-gonic/gin" ) func RequestIDMiddleware() gin.HandlerFunc { return func(c *gin.Context) { requestID := c.GetHeader("X-Request-ID") if requestID == "" { b := make([]byte, 8) rand.Read(b) requestID = hex.EncodeToString(b) } c.Set("request_id", requestID) c.Header("X-Request-ID", requestID) c.Next() } }