X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0d50e82dd2255104e60c0882045b54774e1be380..e3363715769a2503fdcbbb1274d7d04c6852c9c3:/sdk/go/httpserver/id_generator.go?ds=sidebyside diff --git a/sdk/go/httpserver/id_generator.go b/sdk/go/httpserver/id_generator.go index 6452136d85..5b661ae9f7 100644 --- a/sdk/go/httpserver/id_generator.go +++ b/sdk/go/httpserver/id_generator.go @@ -12,6 +12,10 @@ import ( "time" ) +const ( + HeaderRequestID = "X-Request-Id" +) + // IDGenerator generates alphanumeric strings suitable for use as // unique IDs (a given IDGenerator will never return the same ID // twice). @@ -44,12 +48,13 @@ func (g *IDGenerator) Next() string { func AddRequestIDs(h http.Handler) http.Handler { gen := &IDGenerator{Prefix: "req-"} return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - if req.Header.Get("X-Request-Id") == "" { + if req.Header.Get(HeaderRequestID) == "" { if req.Header == nil { req.Header = http.Header{} } - req.Header.Set("X-Request-Id", gen.Next()) + req.Header.Set(HeaderRequestID, gen.Next()) } + w.Header().Set("X-Request-Id", req.Header.Get("X-Request-Id")) h.ServeHTTP(w, req) }) }