2013-05-27 27 views
0

我們使用wso2 api管理器來管理我們的REST apis。對於application/json內容類型,api管理器中的默認配置爲org.wso2.carbon.relay.BinaryRelayBuilder。我期望將整個數據視爲二進制數據,並將其添加到肥皂主體中的有效負載節點上。但是,當我們嘗試向api管理器發送請求時,整個請求將轉換爲xml並由SOAP信封封裝。這通過在由api管理器爲此api創建的代理的順序內記錄請求來確認,我們可以看到整個json請求轉換爲xml。wso2 api管理器中的二進制繼電器

爲什麼使用繼電器時API網關從json轉換爲xml?是否有任何配置,我們必須做,以禁用此API在管理器中的XML處理?

注意:我們的其中一個API是高吞吐量API。這json到xml轉換,然後xml到json轉換會給我們的處理增加額外的負載。

回答

0

在哪個版本的APIManager中你看到上面的問題?如果啓用了Binaryrelay消息構建器,則只有在任何序列中使用log mediator時,纔會看到二進制消息內容。 您是否在POST過程中正確設置了請求的內容類型? 請檢查繼電器模塊的conf在你的Axis2配置中加入(axis2.xml)

<module ref="relay"/> 
+0

我們使用1.3.0版本。繼電器模塊conf默認添加在axis2.xml中。我們通過application/json作爲內容類型。 – bhaskar

0

我發現這個解決方案。只有當我們禁用axis2.xml中的繼電器模塊conf時,二進制繼電器纔會在API管理器中發生。

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

默認情況下,它在版本1.3.0中啓用,在1.3.1中禁用。但爲了使繼電器適用於application/json內容類型,除了使用Binary relay的消息生成器/格式化程序外,我們還必須禁用它。不知道這是否會影響其他事情。這可能是API管理器中的一個錯誤。