wso2 api管理器中的二进制中继

时间:2013-05-27 09:52:07

标签: json api rest wso2

我们正在使用wso2 api管理器来管理我们的REST api。对于application / json content-type,api管理器中的默认配置附带 org.wso2.carbon.relay.BinaryRelayBuilder 。我希望将整个数据视为二进制并添加到soap主体中的有效负载节点。但是当我们尝试向api管理器发送请求时,整个请求将转换为xml并由SOAP信封包装。这是通过在api管理器为此api创建的代理的顺序内部记录请求来确认的,我们可以看到整个json请求转换为xml。

为什么API网关在使用中继时从json转换为xml?是否有任何配置我们必须要在api管理器中禁用此xml处理?

注意:我们的一个API是高吞吐量API。这个json到xml的转换再到xml到json的转换会给我们的处理增加额外的负担。

2 个答案:

答案 0 :(得分:0)

您在哪个版本的APIManager中看到上述问题?如果启用了Binaryrelay消息构建器,则只能在任何序列中使用log mediator时才能看到二进制消息内容。 在进行POST时,您是否正确设置了请求的内容类型? 请检查在axis2配置(axis2.xml)中添加了继电器模块conf

  <module ref="relay"/>

答案 1 :(得分:0)

我找到了解决方法。仅当我们在axis2.xml中禁用中继模块conf时,才会在API管理器中进行二进制中继。

<!--module ref="relay"/-->

默认情况下,它在版本1.3.0中启用,在1.3.1中禁用。但是为了使application / json内容类型的中继工作,除了使用二进制中继的消息构建器/格式化器之外,我们必须禁用它。不确定这是否会影响其他任何事情。这可能是API Manager中的错误。