add request ID middleware
This commit is contained in:
parent
554fb45e33
commit
2340bdca11
15
ron.go
15
ron.go
@ -111,6 +111,7 @@ func (e *Engine) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
e.middleware = append(e.middleware, e.timeOutMiddleware())
|
e.middleware = append(e.middleware, e.timeOutMiddleware())
|
||||||
|
e.middleware = append(e.middleware, e.requestIdMiddleware())
|
||||||
handler = createStack(e.middleware...)(handler)
|
handler = createStack(e.middleware...)(handler)
|
||||||
rw := &responseWriterWrapper{ResponseWriter: w}
|
rw := &responseWriterWrapper{ResponseWriter: w}
|
||||||
handler.ServeHTTP(rw, r)
|
handler.ServeHTTP(rw, r)
|
||||||
@ -157,6 +158,20 @@ func (e *Engine) timeOutMiddleware() Middleware {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Engine) requestIdMiddleware() Middleware {
|
||||||
|
return func(next http.Handler) http.Handler {
|
||||||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
ctx := r.Context()
|
||||||
|
id := r.Header.Get("X-Request-ID")
|
||||||
|
if id == "" {
|
||||||
|
id = fmt.Sprintf("%d", time.Now().UnixNano())
|
||||||
|
}
|
||||||
|
ctx = context.WithValue(ctx, "requestId", id)
|
||||||
|
next.ServeHTTP(w, r.WithContext(ctx))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (e *Engine) USE(middleware Middleware) {
|
func (e *Engine) USE(middleware Middleware) {
|
||||||
e.middleware = append(e.middleware, middleware)
|
e.middleware = append(e.middleware, middleware)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user