ferry/middleware/requestid.go
2023-11-28 22:18:28 +08:00

26 lines
522 B
Go

package middleware
import (
"github.com/gin-gonic/gin"
"github.com/google/uuid"
)
func RequestId() gin.HandlerFunc {
return func(c *gin.Context) {
// Check for incoming header, use it if exists
requestId := c.Request.Header.Get("X-Request-Id")
// Create request id with UUID4
if requestId == "" {
requestId = uuid.NewString()
}
// Expose it for use in the application
c.Set("X-Request-Id", requestId)
// Set X-Request-Id header
c.Writer.Header().Set("X-Request-Id", requestId)
c.Next()
}
}