API网关映射模板,用于单个更改请求

时间:2017-06-16 06:02:43

标签: aws-api-gateway

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

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

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

#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")

1 个答案:

答案 0 :(得分:0)

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