[英]Modify/Remove request payload content in wso2 class mediator or xml sequence in WSO2 APIM 3.2.0
[英]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 的响应消息中介中,我添加了包含类中介的策略,该中介试图获取在请求期间发送的有效负载。
OMElement 元素 = (OMElement) mc.getEnvelope().getBody().getFirstOMChild(); log.info("payload:" + element.toString());
上面的代码片段打印了响应负载内容,但我需要响应路径中的请求负载内容。
下面是带有类中介器的序列
类中介器中的代码片段
OMElement 元素 = (OMElement) mc.getEnvelope().getBody().getFirstOMChild(); log.info("payload:" + element.toString());
请让我知道要进行哪些更改,以获取请求有效负载内容。
首先,我们必须将请求负载存储在消息上下文的自定义属性中。 然后,我们可以使用该属性在执行的响应路径中检索请求有效负载。
例如:您正在使用 JSON Payload 调用 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>
然后,在 Response 路径中,在您的自定义类介体中,您必须从MessageContext
访问RequestPayload
属性以提取存储的有效负载。 您可以使用以下代码段来实现此目的
synapseContext.getProperty("RequestPayload");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.