2012-09-19 3 views
6

JSON REST API에서 GET/PUT/POST/DELETE 등을 쉽게 수행하고 JSON 응답을 유형이 안전한 방식으로 Java 객체에 역 직렬화하도록 Java (또는 Scala) 용 간단한 휴식 클라이언트 라이브러리를 원합니다. 잘 형식화 된 스칼라 (또는 자바) 라이브러리가 JSON 웹 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() 예를 들어,이 같은되고 싶어 GET 요청을하고 내가 sitebricks이라고 원하는 꽤 가까운 도서관을 찾았어요 responseClass

형태의 POJO로 JSON 응답을 역 직렬화 할 public <T> T get(String path, Class<T> responseClass) 있지만 심각하게 예를 들어, 그 범위에 제한된다 PUT/PATCH/DELETE와 같은 흔치 않은 HTTP 동사를 더 이상 할 수 없으며 헤더 나 심지어는 본문을 설정할 방법이 없습니다.

Another library 발견 된 반대 문제가 있습니다. 기본 인증 방법을 사용할 수 없으며 JSON을 다시 개체로 serialize하지 않습니다.

+0

가능하면 제목에 "좋은"및 "최고"를 사용하지 마십시오. 또한 스칼라가 타켓이 아니고 대상이됩니다. –

+0

그래서 HTTP 요청을하는 것이 목표입니까? 파견이나 재부팅을 봤어? https://github.com/dispatch/dispatch. HTTP 요청을 처리하고 응답하는 것이 목표 인 경우 필터링하지 않으면 한 번 볼만한 가치가 있습니다. https://github.com/unfiltered/unfiltered – jwinder

+0

디스패치 또는 재부팅 (비동기 http 클라이언트에 작성된 새로운 버전의 디스패치)은 http 동사를 잘 처리합니다. 다른 http 동사를 처리하지 않고 http 요청을 처리한다고 주장하는 라이브러리는 http 요청을 처리하는 라이브러리로 간주되어서는 안됩니다. 여기서 논리는 http 동사가 http 요청의 기초이므로 모든 라이브러리에서 http 동사를 지원해야한다는 것입니다. – jwinder

답변

1

this을 확인 했습니까? SJSON 대신 Salat을 사용하여 직렬화 할 수 있습니다.