2017-07-16 54 views
0

我需要按順序使用少量REST服務,並將它們解析爲Java對象並將這些Java對象保存在數據庫中。使用Java Webclient消費REST服務的設計模式

我已經寫了一個web客戶端發送請求,解析響應並在RootNodeObject中返回響應。

public clas RootNodeObject { 

private Auth; 

private DeviceDetails; 

private HostDetails; 

} 

當我發送webclient.get(「/驗證」)則返回RootNodeObject包含填充在它驗證對象。 當我發送webclient.get(「/ deviceDetails」)時,它返回包含DeviceDetails對象的RootNodeObject。

以類似的方式,我必須發送8-10請求來獲取所有需要的數據。

之後,我寫了一個mapper類,它將Auth和DeviceDetails對象轉換爲Hibernate Entity類,並將其保存在數據庫中。

這看起來非常僵硬design.Any設計模式爲上述代碼或任何更好的設計,我可以使用?

回答

0

ReactiveX正是你所需要的。以下是他們網站上的文字。他們也有不同的實現programming languages

你可以用你的merge operator來將各種可觀測量的結果組合成一個結果。您可以找到一個示例here

ReactiveX是一個用於通過使用可觀察序列來編寫異步和基於事件的程序的庫。

它擴展了觀察者模式以支持數據和/或事件序列,並添加了運算符,它們允許您聲明性地組合序列,同時抽象出對低級線程,同步,線程安全性,併發數據結構和非阻塞I/O。

爲什麼要使用觀察?

ReactiveX Observable模型允許您使用與用於數組項目集合相同類型的簡單可組合操作來處理異步事件流。它將您從糾結的網絡中解放出來,從而使您的代碼更具可讀性,並且不易出現錯誤。

+0

請您詳細說明如何在我的情況下使用它? –

+0

對此有何幫助? –

+0

您可以在線找到許多rxjava教程,例如http://www.vogella.com/tutorials/RxJava/article.html。 – Rakesh