'Defining URL Query String Parameters in AWS::Serverless::Api SAM template
How do I define and validate URL Query String Parameters for an AWS::Serverless::Api in a SAM template?
They don't seem to be mentioned in the documentation https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html
Solution 1:[1]
The URL Query String Parameters is defined in AWS::Serverless::Function rather than AWS::Serverless::Api using RequestParameters property.
All parameter names must start with method.request and must be limited to method.request.header, method.request.querystring, or method.request.path.
For example to define email, name in URL Query String Parameters and Authorization in HTTP Request Headers u can do the following:
Events:
ApiEvent:
Type: Api
Properties:
Path: /path
Method: get
RequestParameters:
- method.request.querystring.email:
Required: true
Caching: false
- method.request.querystring.name:
Required: true
Caching: false
- method.request.header.Authorization:
Required: true
Caching: true
I hope this helps.
Solution 2:[2]
I think that your response is in another resource, AWS::ApiGateway::Method.
Check the documentation (search for Request Parameters):
The request parameters that API Gateway accepts. Specify request parameters as key-value pairs (string-to-Boolean mapping), with a source as the key and a Boolean as the value. The Boolean specifies whether a parameter is required. A source must match the format method.request.location.name, where the location is querystring, path, or header, and name is a valid, unique parameter name.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Filipe Mendes |

