Send the request's ID back as X-Request-Id
check / check (push) Failing after 2s

A middleware right after chi's RequestID sets the X-Request-Id response
header from the ID RequestID stored in the request context, so every
response carries it and a client can quote it when reporting a problem.
README "Routes" says where the ID comes from.

Model: opus-5-5
This commit is contained in:
2026-10-04 08:31:17 +00:00
parent 3bcd032d37
commit afe4b3bb70
3 changed files with 21 additions and 0 deletions
+14
View File
@@ -115,6 +115,20 @@ func (s *Middleware) RateLimit(
})
}
// RequestIDResponseHeader returns a middleware that sends the request's ID as
// the X-Request-Id response header, so a client can quote it when reporting a
// problem. The ID is the one chi's RequestID middleware stored in the request
// context, so RequestID must run first.
func (s *Middleware) RequestIDResponseHeader() func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set(middleware.RequestIDHeader,
middleware.GetReqID(r.Context()))
next.ServeHTTP(w, r)
})
}
}
type loggingResponseWriter struct {
http.ResponseWriter