我需要我的 Amazon API Gateway REST API 将查询字符串参数传递给后端 AWS Lambda 函数和 HTTP 端点。
简短描述
要配置 REST API 以将查询字符串参数传递给后端 AWS Lambda 函数,请使用 Lambda 自定义集成。
要将查询字符串参数传递给 HTTP 端点,请使用 HTTP 自定义集成。
重要提示:务必将输入数据作为集成请求负载提供。最佳实践是,使用映射模板提供负载。有关更多信息,请参阅在方法和集成之间映射请求和响应负载。
解决方法
将查询字符串参数传递给后端 Lambda 函数
1. 打开 API 网关控制台,然后选择您的 API。
2. 在资源窗格中,选择已配置的 HTTP 方法。
**注意:**如果为 API 配置了多个 HTTP 方法,请为每个方法重复执行步骤 2 到 15。
3. 在方法执行窗格中,选择方法请求。
4. 展开 URL 查询字符串参数下拉列表,然后选择添加查询字符串。
5. 在名称字段中,输入 pet,然后选择复选标记图标。
6. 选中必需复选框。
7. 选择方法执行窗格。
8. 选择集成请求。
9. 选择 Mapping Templates(映射模板)下拉列表,然后选择 Add mapping template(添加映射模板)。
10. 在内容类型字段中输入 application/json,然后选择复选标记图标。
11. 在随即出现的弹出窗口中,选择是,保护此集成。
12. 在请求正文传递中选择当没有定义模板时 (推荐)。
13. 在映射模板编辑器中,复制以下代码,并使用其替换现有脚本:
{
"pet": "$input.params('pet')"
}
注意:有关更多信息,请参阅 $input 变量。
14. 选择保存,然后选择部署 API。
15. 要测试 API 的新端点,请运行以下 curl 命令:
curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/lambda-non-proxy?pet=dog
重要提示:请确保 curl 命令使用查询字符串参数 pet=dog。
将查询字符串参数传递给 HTTP 端点
1. 打开 API 网关控制台,然后选择您的 API。
2. 在 Resources(资源)窗格中,选择已配置的 HTTP 方法。
注意:如果为 API 配置了多个 HTTP 方法,请针对每个方法重复执行步骤 2 到 10。
3. 在方法执行窗格中,选择方法请求。
4. 展开 URL 查询字符串参数下拉列表,然后选择添加查询字符串。
5. 在名称字段中,输入 type,然后选择复选标记图标。
6. 选择方法执行窗格。
7. 选择集成请求。
8. 展开 URL 查询字符串参数部分。
注意:默认情况下,方法请求查询字符串参数映射到名称相似的集成请求查询字符串参数。要查看此内容,请刷新 API Gateway 控制台页面。要将方法请求参数映射到其他集成请求参数,请先删除现有的集成请求参数。然后,添加一个带有所需方法请求参数映射表达式的新查询字符串。
9. 选择保存,然后选择部署 API。
10. 要测试 API 的新端点,请运行以下 curl 命令:
curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/http-endpoint?pet=dog
重要提示:请确保 curl 命令使用查询字符串参数 pet=dog。
相关信息
教程:使用 Lambda 代理集成构建 Hello World REST API
教程:使用 Lambda 非代理集成构建 API Gateway REST API
教程:使用 HTTP 代理集成构建 REST API
教程:使用 HTTP 非代理集成构建 REST API