我想要一个简单的 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 响应反序列化为类型的 POJOresponseClass
我确实找到了一个与我想要的称为sitebricks的库非常接近,但它的范围受到严重限制,例如它不允许我执行更多不常见的 HTTP 动词,如 PUT/PATCH/DELETE 并且它无法设置标题或甚至是请求的正文。
我发现的另一个库有相反的问题——它无法进行基本身份验证,也不会为您将 JSON 序列化回对象。