是否可以根据AWS API网关中的以下伪代码模板映射URL参数?
/mysite/data/results/{id}/image/{filename}
我在网络表单上没有看到适当的字段:
URL 查询字符串参数可能用于
?
之后的内容
它也不在资源部分自由接受花括号:
您可以应用以下步骤:
{
"body" : $input.json('$'),
"headers": {
#foreach($header in $input.params().header.keySet())
"$header": "$util.escapeJavaScript($input.params().header.get($header))" #if($foreach.hasNext),#end
#end
},
"method": "$context.httpMethod",
"params": {
#foreach($param in $input.params().path.keySet())
"$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end
#end
},
"query": {
#foreach($queryParam in $input.params().querystring.keySet())
"$queryParam": "$util.escapeJavaScript($input.params().querystring.get($queryParam))" #if($foreach.hasNext),#end
#end
}
}
之后,您将能够调用 API:
/mysite/data/results/{id}/image/{filename} --> /mysite/data/results/10/image/aws_support.jpg
要解析 lambda 函数中的 URL 参数,您可以轻松应用以下内容:
def lambda_handler(event, context):
path_parameters = event['params'] # all the passed parameters within URL will be stored under event "params" key
event['params']
格式如下:
{
"id" = "10",
"filename" = "aws_support.jpg"
}
您可以使用两个资源块来解决这个问题。一名是父母,另一名是孩子。但这可能不适用于 URL。 内存资源: 类型:AWS::ApiGateway::资源 特性: RestApiId:!Ref MyApiGateway ParentId:!Ref MyResource.RootResourceId 路径部分:“内存中”
编码资源: 类型:AWS::ApiGateway::资源 特性: RestApiId:!Ref MyApiGateway ParentId: !GetAtt InMemoryResource.ResourceId 路径部分:“编码”