如何在 HTTP 代理的集成请求中修改 AWS API 网关中的查询参数
How to modify a query parameter in AWS API Gateway in the integration request for an HTTP Proxy
我有一个面向 API 的客户端,它接受一个查询参数 Time
。格式为 14:00:00
。最初它会通过这个查询参数传递给后端端点。但是,后端端点(我无法控制)现在需要 0001-01-01T14:00:00
.
格式的时间
在 AWS API 网关中传递之前是否可以修改查询参数的值?
我知道您可以使用映射模板修改请求正文,并且在模板中您可以访问 queryParameters
,但是您可以 更改 它们以便它修改向后端发出的实际请求?
我看到了这个:
https://forums.aws.amazon.com/thread.jspa?messageID=696524򪃌
但用户表示放弃尝试修改
我现在能想到的潜在解决方法是将参数传递给 lambda 并构建 lambda 并使用修改后的值发出请求,响应作为 lambda[=16] 的 return 值=]
我想你基本上回答了你自己的问题:)
- 无法转换查询或 header 请求参数。所有转换都需要在 body 映射模板中进行。
- 最好的解决方法是将请求转发到 Lambda 函数以将参数调整为预期的形状
现在可以使用速度模板覆盖映射模板中的查询字符串,例如:
$context.requestOverride.querystring.time="_your_transformed_data_"
有docs
我有一个面向 API 的客户端,它接受一个查询参数 Time
。格式为 14:00:00
。最初它会通过这个查询参数传递给后端端点。但是,后端端点(我无法控制)现在需要 0001-01-01T14:00:00
.
在 AWS API 网关中传递之前是否可以修改查询参数的值?
我知道您可以使用映射模板修改请求正文,并且在模板中您可以访问 queryParameters
,但是您可以 更改 它们以便它修改向后端发出的实际请求?
我看到了这个:
https://forums.aws.amazon.com/thread.jspa?messageID=696524򪃌
但用户表示放弃尝试修改
我现在能想到的潜在解决方法是将参数传递给 lambda 并构建 lambda 并使用修改后的值发出请求,响应作为 lambda[=16] 的 return 值=]
我想你基本上回答了你自己的问题:)
- 无法转换查询或 header 请求参数。所有转换都需要在 body 映射模板中进行。
- 最好的解决方法是将请求转发到 Lambda 函数以将参数调整为预期的形状
现在可以使用速度模板覆盖映射模板中的查询字符串,例如:
$context.requestOverride.querystring.time="_your_transformed_data_"
有docs