aws-api-gateway - 用于对请求进行单一更改的 API 网关映射模板

标签 aws-api-gateway

使用 API 网关,我想拦截集成请求,更改模型,然后通过主体映射模板将其转发到端点。

例如,我想将 MatterGUID 属性更改为 MatterId + 值。

如果我在模板中包含我的整个模型,它工作正常;

#set($inputRoot = $input.path('$'))
{
  "Property1" : "$inputRoot.Property1",
  "MatterId" : "$inputRoot.MatterGUID",
  "Property2" : "$inputRoot.Property2",
  "Property3" : "$inputRoot.Property3"
}

但是,我想通过只更新需要更改的字段来更新我的模型。即类似的东西:

#set($inputRoot = $input.path('$'))
{
  "MatterId" : "$inputRoot.MatterGUID"
}

但是,这样做只会将 MatterId 传递到端点,而不是所有其他属性 - 我可以理解为什么会发生这种情况,但想知道我缺少什么以包含整个对象但已更改MatterGUID 值。

几乎就像我可以在模型上运行 replaceAll 并让它只影响我想要的属性: $inputRoot.Replace("MatterGUID", "MatterId")

最佳答案

模型不是有效负载应包含的内容的真实来源,映射模板才是。目前无法在负载中包含模型中定义但映射模板中不存在的属性。

关于aws-api-gateway - 用于对请求进行单一更改的 API 网关映射模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581854/

相关文章:

java - AWS Lambda - Java Bean

AWS EC2 上的 Node.js RESTful API 服务器与 AWS API 网关

amazon-s3 - 使用自定义域的 AWS Lambda 和 S3 静态文件路由

amazon-web-services - HTTP 请求正文无法通过 AWS API Gateway 到达 AWS lambda 函数

amazon-web-services - 使用多个帐户时无法创建新舞台?

amazon-web-services - API 网关和 Lambda 部署 : Invalid permissions on Lambda function

python - 无服务器框架Python lambda直接返回JSON

amazon-web-services - 是否可以使用带有elasticbeanstalk的内部负载均衡器来创建私有(private)服务?

api - AWS API Gateway - CORS + POST 不起作用

amazon-web-services - Claudia.js 自动生成的 lambda 函数未显示在 AWS 控制台上