Skip to content

Fix aws_api_gateway handler not accepting combined headers and multiValueHeaders#229

Merged
jordaneremieff merged 6 commits intoKludex:mainfrom
Feriixu:main
Feb 4, 2022
Merged

Fix aws_api_gateway handler not accepting combined headers and multiValueHeaders#229
jordaneremieff merged 6 commits intoKludex:mainfrom
Feriixu:main

Conversation

@Feriixu
Copy link
Copy Markdown
Contributor

@Feriixu Feriixu commented Feb 3, 2022

When calling a Lambda via a AWS API Gateway, you are supposed to be able to use both normal headers and "multiValueHeaders" as described here: "Multi-value headers as well as single-value headers and parameters can be combined in the same requests and responses."

I fixed this by simply checking for both keys in the event dict and updating the resulting headers dict first with the normal headers and then with the multiValueHeaders, so they still take precedence.

@Feriixu
Copy link
Copy Markdown
Contributor Author

Feriixu commented Feb 3, 2022

And please create a release, so this gets pushed to PyPi 😄

@jordaneremieff
Copy link
Copy Markdown
Collaborator

If you specify values for both headers and multiValueHeaders, API Gateway merges them into a single list. If the same key-value pair is specified in both, only the values from multiValueHeaders will appear in the merged list.

Yep this makes sense, thanks. If you fix the tests I'll merge and see about a release.

@Feriixu
Copy link
Copy Markdown
Contributor Author

Feriixu commented Feb 4, 2022

That should fix it.

There was a single space where there shouldn't have been one, so the assert failed.
Lines were too long
@Feriixu
Copy link
Copy Markdown
Contributor Author

Feriixu commented Feb 4, 2022

The linters are happy now, and I fixed the tests. You may want to squash that mess (lol).

@jordaneremieff jordaneremieff merged commit e40948f into Kludex:main Feb 4, 2022
khamaileon pushed a commit to khamaileon/mangum that referenced this pull request Jan 13, 2024
…alueHeaders (Kludex#229)

* Fix aws_api_gateway handler not accepting combined headers and multiValueHeaders

* Fix test_aws_api_gateway.py::test_aws_api_gateway_scope_basic

* Formatting

* Fix test_aws_api_gateway_scope_basic again

There was a single space where there shouldn't have been one, so the assert failed.

* More reformatting

Lines were too long

* Okay now the linters should be happy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants