2012-09-19 10 views
6

Quiero una biblioteca cliente de reposo simple para Java (o Scala) que me permita hacer fácilmente GET/PUT/POST/DELETE, etc. en una API JSON REST y deserializar las respuestas JSON en objetos Java de forma segura, p. Ej.¿Existe una biblioteca Scala (o Java) bien tipada para consumir las API web JSON?

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); 

Básicamente quiero la firma genérica para ser algo como esto por ejemplo get() public <T> T get(String path, Class<T> responseClass) que hacer una petición GET y deserializar la respuesta JSON en un POJO de tipo responseClass

he encontrado una biblioteca que está bastante cerca de lo que quiero llamada sitebricks pero está severamente limitada en su alcance por ejemplo, no me permite hacer verbos HTTP más infrecuentes como PUT/PATCH/DELETE y no tiene manera de establecer encabezados o incluso el cuerpo de una solicitud.

Another library Encontré que tiene el problema opuesto: no tiene forma de hacer basicauth y no serializa los JSON en objetos para usted.

+0

Evite el uso de títulos "buenos" y "mejores" si es posible. Además, Scala es el objetivo, no el retroceso. –

+0

¿Entonces su objetivo es hacer solicitudes http? ¿Has buscado despachar o reiniciar? https://github.com/dispatch/dispatch. Si su objetivo es procesar y responder a las solicitudes http, entonces vale la pena mirar sin filtrar. https://github.com/unfiltered/unfiltered – jwinder

+0

El envío o reinicio (que es una especie de la nueva versión del envío escrito en un cliente http asincrónico) manejará bien los verbos http. Cualquier biblioteca que afirme manejar solicitudes http sin manejar diferentes verbos http no debe considerarse una biblioteca para manejar solicitudes http. Creo que la lógica aquí es que los verbos http son la base de las solicitudes http, por lo tanto, cualquier biblioteca debe admitirlos. – jwinder

Respuesta

1

¿Has verificado this? En lugar de SJSON, puede usar Salat para serializar

Cuestiones relacionadas