在 WSO2 API 中隐藏或删除 XML 响应中的一些数据
Hiding or removing some data from XML response in WSO2 API
我正在使用 WSO2 在内部公开 APIs。 API 用作 pass-through 代理(或网关),将请求转发到 back-end-service 并仅添加一些 headers。
现在,我想在拦截来自 back-end 平台的响应时隐藏一些信息。
我试过过滤器调解器,但我不确定我的方法是否正确。
下面是我想做的事的例子。
实际响应(as-is):
<member>
<name>ABC</name>
<value>abc</value>
</member>
<member>
<name>XYZ</name>
<value>xyz</value>
</member>
希望的响应(在 remove/hide 操作后发送给客户端):
<member>
<name>ABC</name>
<value>abc</value>
</member>
有什么帮助吗?
您可以尝试使用 Enrich 介体修改正文。
根据您的代码片段,enrich mediator 可以如下所示,并且可以在调用端点后立即添加。
<enrich>
<source clone="true" xpath="$body//member[1]"/>
<target type="body"/>
</enrich>
在上面的 enrich mediator 中,它将检索响应正文的第一个 member
标记,并将其设置为正文。
您可以参考 Enrich 中介文档 [1] 以进一步参考。
它对我有用,谢谢。但是我可以通过引用成员的值来做同样的动作吗?换句话说,我可以把这个代码:
<enrich>
<source clone="true" xpath="$body//name[ABC]"/>
<target type="body"/>
</enrich>
我正在使用 WSO2 在内部公开 APIs。 API 用作 pass-through 代理(或网关),将请求转发到 back-end-service 并仅添加一些 headers。 现在,我想在拦截来自 back-end 平台的响应时隐藏一些信息。
我试过过滤器调解器,但我不确定我的方法是否正确。
下面是我想做的事的例子。
实际响应(as-is):
<member>
<name>ABC</name>
<value>abc</value>
</member>
<member>
<name>XYZ</name>
<value>xyz</value>
</member>
希望的响应(在 remove/hide 操作后发送给客户端):
<member>
<name>ABC</name>
<value>abc</value>
</member>
有什么帮助吗?
您可以尝试使用 Enrich 介体修改正文。
根据您的代码片段,enrich mediator 可以如下所示,并且可以在调用端点后立即添加。
<enrich>
<source clone="true" xpath="$body//member[1]"/>
<target type="body"/>
</enrich>
在上面的 enrich mediator 中,它将检索响应正文的第一个 member
标记,并将其设置为正文。
您可以参考 Enrich 中介文档 [1] 以进一步参考。
它对我有用,谢谢。但是我可以通过引用成员的值来做同样的动作吗?换句话说,我可以把这个代码:
<enrich>
<source clone="true" xpath="$body//name[ABC]"/>
<target type="body"/>
</enrich>