2012-07-17 19 views
0

上下文: 我有一個基於XML的API。我使用此API獲取請求。然後我有變換器將這些請求轉換爲第三方特定的API。然後,我使用轉換後的對象進行網絡服務調用,找回一些我轉換回API對象的響應。如何將請求的各個部分回顯爲mule中的響應

在一條線路是這樣的:

MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES 

死的簡單。

問題: 現在,我想在迴應中回覆我的請求的某些部分。

假設我的請求API有一個Echo組件,它也必須出現在響應中。最簡單的解決方案在我看來,我將這個Echo組件存儲在某個地方(例如:在session scoped header屬性中),然後將請求轉換爲第三方的API。然後在響應分支上檢索這個Echo組件並將其設置在我的響應對象上。

在一條線路是這樣的:

MY_API_REQ -> Store parts -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES -> Retrieve and set stored parts 

關注:像我使用的最佳解決方案這個解決方案並不能使我的感覺。部分原因恐怕有流程的執行過程中有複製機制,我不知道,這讓我擔心性能...

我正在做這一切的同步,所以我應該在相同的線程一直下降,所以也許我的擔憂沒有什麼基礎。然而,在做一些性能測試或分析之前,我想問你們這件事...

懶惰是健康的一半。 ;) 在此先感謝:T

+0

我對你提到的「Echo組件」感到困惑:你指的是Mule的? – 2012-07-17 16:35:22

+0

號對於例如: ... uthomas 2012-07-18 09:09:34

+0

然後響應將包含相同的部分。現在更容易理解嗎?對不起,如果我沒有在第一時間說清楚。 – uthomas 2012-07-18 09:11:59

回答

1

有兩種不同的方法(您使用的是第一個):

  • 商店要保持一個屬性,讓信息的出站交互更換有效載荷與他們的反應,隨後從財產檢索保存的信息。如果您不需要在流中共享此存儲的信息,則使用流變量而不是會話屬性會更明智。
  • 將原始有效負載轉換爲預期響應,傳播此「回聲」值並與消息豐富者與出站服務進行交互。如果出站交互真的可以豐富響應,這可以在語義上更清晰。
相關問題