File tree 2 files changed +15
-2
lines changed
2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change 14
14
// Generator defines a function to generate an ID.
15
15
// Optional. Default value random.String(32).
16
16
Generator func () string
17
+
18
+ // RequestIDHandler defines a function which is executed for a request id.
19
+ RequestIDHandler func (echo.Context , string )
17
20
}
18
21
)
19
22
@@ -53,6 +56,9 @@ func RequestIDWithConfig(config RequestIDConfig) echo.MiddlewareFunc {
53
56
rid = config .Generator ()
54
57
}
55
58
res .Header ().Set (echo .HeaderXRequestID , rid )
59
+ if config .RequestIDHandler != nil {
60
+ config .RequestIDHandler (c , rid )
61
+ }
56
62
57
63
return next (c )
58
64
}
Original file line number Diff line number Diff line change @@ -23,13 +23,20 @@ func TestRequestID(t *testing.T) {
23
23
h (c )
24
24
assert .Len (t , rec .Header ().Get (echo .HeaderXRequestID ), 32 )
25
25
26
- // Custom generator
26
+ // Custom generator and handler
27
+ customID := "customGenerator"
28
+ calledHandler := false
27
29
rid = RequestIDWithConfig (RequestIDConfig {
28
- Generator : func () string { return "customGenerator" },
30
+ Generator : func () string { return customID },
31
+ RequestIDHandler : func (_ echo.Context , id string ) {
32
+ calledHandler = true
33
+ assert .Equal (t , customID , id )
34
+ },
29
35
})
30
36
h = rid (handler )
31
37
h (c )
32
38
assert .Equal (t , rec .Header ().Get (echo .HeaderXRequestID ), "customGenerator" )
39
+ assert .True (t , calledHandler )
33
40
}
34
41
35
42
func TestRequestID_IDNotAltered (t * testing.T ) {
You can’t perform that action at this time.
0 commit comments