package middleware import ( "context" "one-api/common/logger" "one-api/common/utils" "time" "github.com/gin-gonic/gin" ) func RequestId() func(c *gin.Context) { return func(c *gin.Context) { id := utils.GetTimeString() + utils.GetRandomString(8) c.Set(logger.RequestIdKey, id) ctx := context.WithValue(c.Request.Context(), logger.RequestIdKey, id) ctx = context.WithValue(ctx, "requestStartTime", time.Now()) c.Request = c.Request.WithContext(ctx) c.Header(logger.RequestIdKey, id) c.Next() } }