'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 |