1
使用API网关,我想拦截集成请求,更改模型,然后通过正文映射模板将其转发到端点。用于请求单个更改的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")
这是否意味着我需要为每个我想定制的映射模板包含整个模型?即使用正文映射中的“生成模板”,并根据需要调整属性? – Hexie