ferry/middleware/requestid.go

26 lines
522 B
Go
Raw Normal View History

2020-07-13 20:33:20 +08:00
package middleware
import (
"github.com/gin-gonic/gin"
2023-11-28 22:18:28 +08:00
"github.com/google/uuid"
2020-07-13 20:33:20 +08:00
)
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 == "" {
2023-11-28 22:18:28 +08:00
requestId = uuid.NewString()
2020-07-13 20:33:20 +08:00
}
// 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()
}
}