2012-09-19 27 views
6

我想要一個簡單的Java(或Scala)休息客戶端庫,讓我可以輕鬆地在JSON REST API上執行GET/PUT/POST/DELETE等,並以類型安全的方式將JSON響應反序列化爲Java對象。是否有一個良好類型的Scala(或Java)庫來使用JSON Web API?

RestClient client = new RestClient("http://api.mycompany.com").withAuth(Auth.Basic, username, password); 
// This basically deserializes the JSON response into a POJO  
MyDocument[] result = client.get("/document?limit=10", MyDocument[].class); 
MyFriend friend = client.post("/friend/Joe", body, MyFriend.class); 

基本上我想要的一般簽名是這樣的get()例如, public <T> T get(String path, Class<T> responseClass)它會做一個GET請求和反序列化JSON響應到類型的POJO responseClass

我沒有找到一個圖書館,這是非常接近我想要叫sitebricks但它在其範圍嚴格限制例如它不允許我執行更多不常見的HTTP動詞,如PUT/PATCH/DELETE,它無法設置標題甚至請求的正文。

Another library我發現有相反的問題 - 它沒有辦法做basicauth,它不會將JSONs序列化回對象中。

+0

如果可能,請避免在標題中使用「good」和「best」。此外,斯卡拉是目標,而不是回落.. – 2012-09-19 04:10:24

+0

所以你的目標是使http請求?你看過調度還是重新啓動? https://github.com/dispatch/dispatch。如果您的目標是處理和響應http請求,那麼未過濾可能值得一看。 https://github.com/unfiltered/unfiltered – jwinder

+0

調度或重新啓動(這是在異步http客戶端寫入的新版本的調度)將很好地處理http動詞。任何聲稱處理http請求而不處理不同http動詞的庫都不應被視爲處理http請求的庫。我認爲這裏的邏輯是http動詞是http請求的基礎,因此任何庫都應該支持它們。 – jwinder

回答

1

Did you check this?您可以使用Salat進行序列化,而不是SJSON。

相關問題