From 4fa38540304a0e634e9dab05020d653e762df195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?France=CC=81=20Wilke?= <francewilke@gmail.com> Date: Tue, 31 Oct 2023 13:30:23 +0200 Subject: [PATCH] Add HTTP X-Request-ID field to response headers --- handler_utils/request.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/handler_utils/request.go b/handler_utils/request.go index 5633f91..8d251bf 100644 --- a/handler_utils/request.go +++ b/handler_utils/request.go @@ -15,6 +15,8 @@ import ( "github.com/aws/aws-lambda-go/lambdacontext" ) +const HTTPXRequestIDHeaderValue = "X-Request-ID" + func RequestIDFromLambdaContext(ctx context.Context) *string { // Get request ID from context if ctx != nil { @@ -34,9 +36,19 @@ func RequestIDFromHeaders(headers map[string]string, requestIDHeaderKey string) return nil } -func AddRequestIDToHeaders(requestID *string, headers map[string]string, requestIDHeaderKey string) { - if requestID != nil && headers != nil { - headers[requestIDHeaderKey] = *requestID +func AddRequestIDToHeaders(requestID *string, responseHeaders map[string]string, requestIDHeaderKey string, requestHeaders map[string]string) { + if requestID != nil && responseHeaders != nil { + responseHeaders[requestIDHeaderKey] = *requestID + responseHeaders[HTTPXRequestIDHeaderValue] = *requestID + } + + // Add the HTTP X-Request-ID request header to the response headers: https://http.dev/x-request-id + for key, val := range requestHeaders { + // Don't be case-sensitive + if strings.ToLower(key) == strings.ToLower(HTTPXRequestIDHeaderValue) { + responseHeaders[key] = val + break + } } } -- GitLab