2017-06-16 27 views
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")

回答

0

該模型是不是真理對有效載荷應包含什麼源,映射模板是。目前不可能在模型中定義的有效載荷中包含屬性,但映射模板中不存在這些屬性。

+0

這是否意味着我需要爲每個我想定製的映射模板包含整個模型?即使用正文映射中的「生成模板」,並根據需要調整屬性? – Hexie