如何使用 OMElement - WSO2 APIM ver 3.2.0 在响应路径 class 中介中获取请求有效负载内容

How to get Request payload content at Response path class mediator using OMElement - WSO2 APIM ver 3.2.0

我正在使用 WSO2 APIM 版本 3.2.0。

我有一个带有请求负载的 POST 请求。 在 WSO2 APIM 的响应消息调解中,我添加了包含 class 调解器的策略,该调解器试图在请求期间发送有效负载。

OMElement 元素 = (OMElement) mc.getEnvelope().getBody().getFirstOMChild(); log.info("有效负载:" + element.toString());

上面的代码片段打印了响应负载内容,但我需要响应路径中的请求负载内容。

Response message mediation with a policy added

下面是带有 class 中介的序列

sequence with class mediator

class 中介程序中的代码片段

OMElement 元素 = (OMElement) mc.getEnvelope().getBody().getFirstOMChild(); log.info("有效负载:" + element.toString());

请告诉我要进行哪些更改以获取请求负载内容。

首先,我们必须将请求负载存储在消息上下文中的自定义 属性 中。然后,我们可以使用 属性 在执行的响应路径中检索请求负载。

例如:您正在使用 JSON 负载调用 API。因此,我们必须首先捕获发送的有效负载并将其存储在消息上下文中的自定义 属性 中。下面给出了执行相同操作的示例序列

<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="admin--MockAPI:v1.0.0--In">
   <property name="RequestPayload" expression="json-eval($)" />
   <log level="custom">
      <property name="RequestPayload" expression="$ctx:RequestPayload" />
   </log>
</sequence>

然后,在响应路径中,在您的自定义 class 调解器中,您必须从 MessageContext 访问 RequestPayload 属性 以提取存储的负载。您可以使用以下代码片段实现此目的

synapseContext.getProperty("RequestPayload");