我希望能够找到一个简单的Java(或Scala)REST客户端库,使我可以轻松地在JSON REST API上执行GET / PUT / POST / DELETE等操作,并以类型安全方式反序列化JSON响应为Java对象,例如:
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响应反序列化为类型为responseClass
的POJO。我找到了一个名为sitebricks的库,它与我的需求非常接近,但其范围严重受限,例如它不允许我执行更不常见的HTTP动词,如PUT/PATCH/DELETE,也没有设置请求头或甚至请求正文的方法。
我发现的另一个库则存在相反的问题 - 它无法执行基本身份验证,并且不能自动将JSON反序列化为对象。