在AWS API Gateway中,可以使用可选路径参数来定义具有不同路径参数值的端点。以下是一个解决方案,包含代码示例:
首先,在API Gateway中创建一个新的REST API。
创建一个资源,例如/users
。
在该资源上创建一个方法,例如GET
。
在方法设置中,选择Integration type为Lambda Function
,然后选择一个Lambda函数来处理请求。
在Method Request
设置中,展开URL Query String Parameters
。
单击Add query string
,然后输入一个参数名称,例如name
。确保参数的Required
选项未选中,这样它就会成为可选参数。
在Integration Request
设置中,选择Mapping Templates
。
选择Add mapping template
,然后选择application/json
。
输入以下模板代码:
{
"name": "$input.params('name')"
}
这将将路径参数的值映射到JSON请求主体中的name
字段中。
单击Save
保存更改。
部署API。
现在,您可以通过发送GET请求到/users
端点来测试API。您可以选择在URL中包含name
参数,例如/users?name=John
,也可以不包含该参数。
在Lambda函数中,您可以使用以下Python示例代码来处理请求:
import json
def lambda_handler(event, context):
name = event.get('name', 'Unknown')
response = {
'statusCode': 200,
'body': json.dumps({'message': f'Hello, {name}!'})
}
return response
这个Lambda函数将根据请求中的name
参数返回不同的响应。如果没有提供name
参数,它将默认为Unknown
。
当您发送带有name
参数的请求时,将返回以下响应:
{
"message": "Hello, John!"
}
当您发送不带name
参数的请求时,将返回以下响应:
{
"message": "Hello, Unknown!"
}
希望这个解决方案能对您有所帮助!