28 lines
566 B
Go
28 lines
566 B
Go
package middlewares
|
|
|
|
import (
|
|
"github.com/mayswind/lab/pkg/core"
|
|
"github.com/mayswind/lab/pkg/requestid"
|
|
"github.com/mayswind/lab/pkg/settings"
|
|
)
|
|
|
|
const REQUEST_ID_HEADER = "X-Request-ID"
|
|
|
|
func RequestId(config *settings.Config) core.MiddlewareHandlerFunc {
|
|
return func (c *core.Context) {
|
|
if requestid.Container.Current == nil {
|
|
c.Next()
|
|
return
|
|
}
|
|
|
|
requestId := requestid.Container.Current.GenerateRequestId(c.ClientIP())
|
|
c.SetRequestId(requestId)
|
|
|
|
if config.EnableRequestIdHeader {
|
|
c.Header(REQUEST_ID_HEADER, requestId)
|
|
}
|
|
|
|
c.Next()
|
|
}
|
|
}
|