serverless-express icon indicating copy to clipboard operation
serverless-express copied to clipboard

`headers` missing on API Gateway V1 response

Open alfaproject opened this issue 4 years ago • 1 comments

For some reason, the API Gateway V1 response does not include the headers field. It converts the input headers to multiValueHeaders.

This is a breaking change from aws-serverless-express and something that I am now patching manually with patch-package to get back the previous response object.

We have our own API Gateway-like proxy via a Cloudflare worker and CF (or browser) workers don't support multi value headers in the response, so at the very least it would be nice to have an option to just use headers or pass both of them as is to the proxy.

alfaproject avatar Jul 19 '21 16:07 alfaproject

This is the patch I have applied:

diff --git a/node_modules/@vendia/serverless-express/src/event-sources/aws/api-gateway-v1.js b/node_modules/@vendia/serverless-express/src/event-sources/aws/api-gateway-v1.js
index 1179d8a..6c6e9ac 100644
--- a/node_modules/@vendia/serverless-express/src/event-sources/aws/api-gateway-v1.js
+++ b/node_modules/@vendia/serverless-express/src/event-sources/aws/api-gateway-v1.js
@@ -19,6 +19,7 @@ function getResponseToApiGateway ({
   return {
     statusCode,
     body,
+    headers,
     multiValueHeaders,
     isBase64Encoded
   }

alfaproject avatar Jul 20 '21 13:07 alfaproject