嗨,我是API连接的新手...我有一个用例,其中我必须根据特定条件以XML格式合并来自两个端点的响应。
我在汇编部分中的流程是这样
1) INVOKE
(我做我的 首次服务电话 并捕获响应 在自定义' Response 对象变量'-XMLResponse1
2) INVOKE
(我做我的 第二次服务电话 在这里我不使用任何 自定义“ 响应对象变量” 相反,我使用apim.getvaribale('message.body')来获取响应
3)网关脚本
在这里,我想编写我的脚本来解析xml并合并两个响应 并将合并后的响应发送回消费者
我观察到当我尝试如下所示捕获XML响应时,没有在自定义Response对象变量中捕获
var test1 = apim.getvariable('XMLResponse1'); test1.item(0).childNodes
它引发了这样的异常
test1.item不是函数
现在进行第二次响应,如下所示,其中我没有在自定义Response对象变量中捕获响应,因此效果很好
var test2 = apim.getvariable('message.body');
我的问题:
1)如何在自定义Response对象变量中捕获xml响应?
2)如何将响应解析为javascript对象? api connect是否支持任何库?
答案 0 :(得分:0)
以下是从IBM社区中找到的样本。希望对您有帮助。
**** Sample XML ****
<Routing>
<partner name="Partner A" key="1">
<from_ID>PartnerA-KEY1-INT</from_ID>
<to_ID>PartnerA-KEY1-EXT</to_ID>
<destination>PartnerA-KEY1-DESTINATION</destination>
</partner>
<partner name="Partner B" key="2">
<from_ID>PartnerB-KEY2-INT</from_ID>
<to_ID>PartnerB-KEY2-EXT</to_ID>
<destination>PartnerB-KEY2-DESTINATION</destination>
</partner>
<partner name="Partner C" key="3">
<from_ID>PartnerC-KEY3-INT</from_ID>
<to_ID>PartnerC-KEY3-EXT</to_ID>
<destination>PartnerC-KEY3-DESTINATION</destination>
</partner>
</Routing>
**** Corresponing Gateway Script *****
var response = apim.getvariable('XMLResponse1.body');
var objType = response.item(0);
var string = objType.getElementsByTagName("partner").item(0).getElementsByTagName("from_ID").item(0).textContent;
输出--->字符串= PartnerA-KEY1-INT
答案 1 :(得分:0)