Expected Behaviour
When using both queryStringParameters and multiValueQueryStringParameters I expect all annotated query parameters to be set in my router handler.
Current Behaviour
If multiValueQueryStringParameters is used for one parameter and queryStringParameters for another, the latter will not be set in the router handler.
Code snippet
from typing import Annotated, Optional
from aws_lambda_powertools.event_handler.openapi.params import Query
@router.get("/foobar")
def foobar(
ids: Annotated[Optional[list[str]], Query()] = None,
status: Annotated[Optional[str], Query()] = None,
):
assert ids # This passes
assert status is not None # This fails
def test_issue():
event = {
"multiValueQueryStringParameters": {"ids": ["1", "2", "3"]},
"queryStringParameters": {"status": "fizzbuzz"},
}
# Actually uses rest resolver
response = handler(event, lambda_context)
Possible Solution
No response
Steps to Reproduce
Run test provided in code snippet.
Powertools for AWS Lambda (Python) version
3.21.0
AWS Lambda function runtime
3.13
Packaging format used
PyPi
Debugging logs
Expected Behaviour
When using both
queryStringParametersandmultiValueQueryStringParametersI expect all annotated query parameters to be set in my router handler.Current Behaviour
If
multiValueQueryStringParametersis used for one parameter andqueryStringParametersfor another, the latter will not be set in the router handler.Code snippet
Possible Solution
No response
Steps to Reproduce
Run test provided in code snippet.
Powertools for AWS Lambda (Python) version
3.21.0
AWS Lambda function runtime
3.13
Packaging format used
PyPi
Debugging logs