0

我们正在使用 wso2 api manager 来管理我们的 REST api。api 管理器中的默认配置带有org.wso2.carbon.relay.BinaryRelayBuilder用于 application/json 内容类型。我希望将整个数据视为二进制并添加到肥皂正文中的有效负载节点。但是当我们尝试向 api manager 发送请求时,整个请求被转换为 xml 并被 SO​​AP 信封包装。这通过将请求记录在 api 管理器为此 api 创建的代理的顺序中得到证实,我们可以看到整个 json 请求转换为 xml。

为什么API网关在使用relay时会从json转换为xml?是否需要进行任何配置才能在 api 管理器中禁用此 xml 处理?

注意:我们的 API 之一是高吞吐量 API。这种 json 到 xml 的转换,然后是 xml 到 json 的转换将为我们的处理增加额外的负载。

4

2 回答 2

0

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

  <module ref="relay"/>
于 2013-05-27T12:48:21.410 回答
0

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

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

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

于 2013-05-30T11:11:41.630 回答