@@ -17,14 +17,18 @@ type (
17
17
18
18
// RequestIDHandler defines a function which is executed for a request id.
19
19
RequestIDHandler func (echo.Context , string )
20
+
21
+ // TargetHeader defines what header to look for to populate the id
22
+ TargetHeader string
20
23
}
21
24
)
22
25
23
26
var (
24
27
// DefaultRequestIDConfig is the default RequestID middleware config.
25
28
DefaultRequestIDConfig = RequestIDConfig {
26
- Skipper : DefaultSkipper ,
27
- Generator : generator ,
29
+ Skipper : DefaultSkipper ,
30
+ Generator : generator ,
31
+ TargetHeader : echo .HeaderXRequestID ,
28
32
}
29
33
)
30
34
@@ -42,6 +46,9 @@ func RequestIDWithConfig(config RequestIDConfig) echo.MiddlewareFunc {
42
46
if config .Generator == nil {
43
47
config .Generator = generator
44
48
}
49
+ if config .TargetHeader == "" {
50
+ config .TargetHeader = echo .HeaderXRequestID
51
+ }
45
52
46
53
return func (next echo.HandlerFunc ) echo.HandlerFunc {
47
54
return func (c echo.Context ) error {
@@ -51,11 +58,11 @@ func RequestIDWithConfig(config RequestIDConfig) echo.MiddlewareFunc {
51
58
52
59
req := c .Request ()
53
60
res := c .Response ()
54
- rid := req .Header .Get (echo . HeaderXRequestID )
61
+ rid := req .Header .Get (config . TargetHeader )
55
62
if rid == "" {
56
63
rid = config .Generator ()
57
64
}
58
- res .Header ().Set (echo . HeaderXRequestID , rid )
65
+ res .Header ().Set (config . TargetHeader , rid )
59
66
if config .RequestIDHandler != nil {
60
67
config .RequestIDHandler (c , rid )
61
68
}
0 commit comments