Reputation: 1932
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
Just to be clear this is what I am talking about
Upvotes: 2
Views: 5888
Reputation: 365
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.
Upvotes: 3
Reputation: 185
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.
Upvotes: 2