File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change 1414 // Generator defines a function to generate an ID.
1515 // Optional. Default value random.String(32).
1616 Generator func () string
17+
18+ // RequestIDHandler defines a function which is executed for a request id.
19+ RequestIDHandler func (echo.Context , string )
1720 }
1821)
1922
@@ -53,6 +56,9 @@ func RequestIDWithConfig(config RequestIDConfig) echo.MiddlewareFunc {
5356 rid = config .Generator ()
5457 }
5558 res .Header ().Set (echo .HeaderXRequestID , rid )
59+ if config .RequestIDHandler != nil {
60+ config .RequestIDHandler (c , rid )
61+ }
5662
5763 return next (c )
5864 }
Original file line number Diff line number Diff line change @@ -23,13 +23,20 @@ func TestRequestID(t *testing.T) {
2323 h (c )
2424 assert .Len (t , rec .Header ().Get (echo .HeaderXRequestID ), 32 )
2525
26- // Custom generator
26+ // Custom generator and handler
27+ customID := "customGenerator"
28+ calledHandler := false
2729 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+ },
2935 })
3036 h = rid (handler )
3137 h (c )
3238 assert .Equal (t , rec .Header ().Get (echo .HeaderXRequestID ), "customGenerator" )
39+ assert .True (t , calledHandler )
3340}
3441
3542func TestRequestID_IDNotAltered (t * testing.T ) {
You can’t perform that action at this time.
0 commit comments