package api import ( "crypto/rand" "encoding/hex" "github.com/gin-gonic/gin" ) func RequestID() gin.HandlerFunc { return func(c *gin.Context) { id := c.GetHeader("X-Request-Id") if id == "" { b := make([]byte, 8) if _, err := rand.Read(b); err == nil { id = hex.EncodeToString(b) } else { id = "req-unknown" } } c.Set("request_id", id) c.Header("X-Request-Id", id) c.Next() } }