Defining URL Query String Parameters in AWS::Serverless::Api SAM template

Viewed 3135
2 Answers

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.

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.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters

Related