Files
hucan 8ae43bfba9
Some checks failed
Build / build (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
build / Build (push) Has been cancelled
GitHub Actions Mirror / mirror_to_gitee (push) Has been cancelled
GitHub Actions Mirror / mirror_to_gitlab (push) Has been cancelled
Issue Close Require / issue-close-require (push) Has been cancelled
Issue Check Inactive / issue-check-inactive (push) Has been cancelled
1
2025-06-29 00:36:30 +08:00

37 lines
817 B
Go

package middleware
import (
"github.com/go-admin-team/go-admin-core/logger"
"github.com/go-admin-team/go-admin-core/sdk/pkg"
"net/http"
"strings"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
)
// RequestId 自动增加requestId
func RequestId(trafficKey string) gin.HandlerFunc {
return func(c *gin.Context) {
if c.Request.Method == http.MethodOptions {
c.Next()
return
}
requestId := c.GetHeader(trafficKey)
if requestId == "" {
requestId = c.GetHeader(strings.ToLower(trafficKey))
}
if requestId == "" {
requestId = uuid.New().String()
}
c.Request.Header.Set(trafficKey, requestId)
c.Set(trafficKey, requestId)
c.Set(pkg.LoggerKey,
logger.NewHelper(logger.DefaultLogger).
WithFields(map[string]interface{}{
trafficKey: requestId,
}))
c.Next()
}
}