2016-11-01 61 views
1

我已經定義在WSO2 ESB一個API和它調用通過recepient列表中的兩個內部的API並且被傳遞JSON響應如下:(樣品響應)聚集多個JSON響應

{ 
    "name": "api1", 
    "response": "success", 
    "status": "1" 
} 

{ 
    "name": "api2", 
    "response": "unsuccess", 
    "status": "2" 
} 

我需要通過聚合這兩個響應作爲單個響應來傳遞響應。我關於payloadfactory並且能夠構建聚合響應。但我需要聚合無論從這些2層的API來的響應,併產生響應爲一個單一的JSON對象並且通過包括這兩個響應的傳遞如下

{ 
    "response1": { 
     "name": "api1", 
     "response": "success", 
     "status": "1" 
    }, 
    "response2": { 
     "name": "api2", 
     "response": "unsuccess", 
     "status": "2" 
    } 
} 

因此如何能與WSO2ESB一個完成。我正在使用最新版本的ESB。

回答

0

嗯,這是豐富介體變得方便的地方。請試試看。我沒有測試過,因爲我現在沒有做WSO2相關的東西。但您的反饋熱烈歡迎。僞代碼是這樣的。

<call> 
    <endpoint> 
     <http method="GET" uri-template="http://www.mocky.io/v2/some-ep"/> 
    </endpoint> 
</call> 
<enrich> 
    <source type="body" clone="true"/> 
    <target type="property" property="first-json"/> 
</enrich> 
    <call> 
    <endpoint> 
     <http method="GET" uri-template="http://www.mocky.io/v2/another-ep"/> 
    </endpoint> 
</call> 
<enrich> 
    <source type="property" property="first-json" clone="true"/> 
    <target action="sibling" xpath="//"/> 
</enrich> 
</respond> 
+0

好的。感謝你的回答。我會嘗試 –

+0

還有一件事,你的有效載荷結構是錯誤的。它應該是json中的一個集合,應該像{[{name:Marc,response:resp1,status:...},{...}]} –

+0

我錯過了有效負載中的一小部分,並且您的示例json也不正確,因爲它沒有根元素。順便謝謝。 { \t 「響應」:[{ \t \t 「名稱」: 「馬克」, \t \t 「響應」: 「resp1」, \t \t 「狀態」: 「1」 \t},{ \t \t「名 「: 」馬克「, \t \t 」迴應「: 」resp1「, \t \t 」狀態「: 」1「。 \t}]} –