通过Datapower网关脚本获取无效XML的响应有效负载

时间:2019-04-22 22:32:33

标签: api-gateway ibm-datapower apiconnect

我正在使用IBM API Connect和IBM DataPower 2018。

我有一个SOAP Web服务,我需要通过捕获请求\响应有效负载对其进行一些自定义的日志记录。

当服务返回有效的XML甚至SOAP异常时,我可以轻松地处理此类情况,并将请求\响应有效负载保存在单独的DB模式中以用于操作目的。

我通过从后端返回非XML响应(例如“ ABCDEFGHI ....”)来更新响应有效负载。 当我通过数据功能调用此服务时,它将返回明确的响应。

<errorResponse>
   <httpCode>400</httpCode>
   <httpMessage>Bad Request</httpMessage>
   <moreInformation>Invalid XML payload received.</moreInformation>
</errorResponse>

但是我无法捕获message.body有效负载,在我的情况下为“ ABCDEFGHI ..”,apim.getvariable('message.body')不返回任何内容。

我的问题: 如何通过使用网关脚本捕获SOAP服务的无效响应有效负载(XML不好)?

1 个答案:

答案 0 :(得分:0)

您不能...,因为该消息将在处理之前被拒绝,因为DataPower会将消息类型设置为SOAP,它将拒绝任何非SOAP的消息。 您将需要通过“链接” API(或DataPower实例上的服务)传递它,该API可以捕获响应有效负载。