如何在datapower中的Event-sink之后提取多个JSON响应

时间:2016-04-22 14:40:32

标签: json rest ibm-datapower

场景:我的服务根据计数多次调用另一个休息服务。我在datapower中使用事件接收器操作。

我能够多次触发其他服务,然后又回复了。但我无法在以下(JSON)中捕获回复XSL 已创建多个上下文变量:

var://context/URLOUTPUT_1,  var://context/URLOUTPUT_2/ 

如何从上下文变量中提取JSON response。 我打电话的服务是JSON request and response

的休息服务

如何在JSON response之后为每次通话提取event-sink?响应JSON body在哪里存储?

3 个答案:

答案 0 :(得分:0)

我不确定我是100%跟进,但你是如何触发其他服务的呢?

首先,如果您使用FW 7+,请考虑使用GatewayScript(GWS~Node.js)!

如果您使用的是Result操作,则应该为每个请求执行Response(服务器到客户端)规则。

否则,您需要通过为每个请求(触发器)调用模板将其设置为“循环”,然后在url-open()中获取每个请求的响应。

如果您正在使用GWS,它将是相同的,但在JavaScript中,创建一个循环,为每个事件调用url-open并获取每个调用的响应。

答案 1 :(得分:0)

在模板匹配之前尝试回复。

    _     变种://上下文/

现在为您创建的服务变量执行每个操作。

为每个人做一个响应转换,你喜欢什么。

答案 2 :(得分:0)

您可以像上下文变量一样访问上下文内容。

尝试这样的事情:

<xsl:variable name="json-result">
    <xsl:copy-of select="dp:decode(
        dp:binary-encode(
        dp:variable('var://context/URLOUTPUT_1')/node()), 'base-64')"/>
</xsl:variable>