invocar - Los marcos más sencillos para implementar servicios web REST de Java
java rest client json (10)
¿Cuáles son los mejores marcos para implementar frameworks REST de cliente y servidor en Java? He estado luchando un poco para encontrar una solución fácil de usar.
Actualización : Tanto Jersey como Restlet parecen buenas opciones. Probablemente usemos Restlet, pero experimentaremos con ambos.
ACTUALIZACIÓN: Xydra Restless ya no se mantiene +++ Si está utilizando Goolge App Engine antes de lanzar una función de "instancia de reserva", puede considerar Xydra Restless, que tiene pocas funciones pero se carga rápidamente.
Echa un vistazo al dropwizard también.
No lo he usado personalmente, pero algunos equipos con los que trabajo usan Spring 3 MVC. REST en la primavera 3: @MVC parece una buena reseña de publicación de blog. Las características RESTful incluyen "Plantillas de URI", "Negociación de contenido", "Conversión de método HTTP", "Soporte de ETag" y más.
Editar : Además, vea esta pregunta: ¿Alguien puede recomendar un marco web Java basado en MVC que sea compatible con REST?
Puede echar un vistazo a la implementación de CXF JAX-RS. Para obtener una lista completa de sus funciones, consulte el sitio web de CXF para JAX-RS . La comunidad detrás del proyecto parece estar muy activa (julio de 2013). Una indicación de eso es la cantidad de mensajes por día en las listas de correo de CXF .
Puedo recomendar Apache wink, un nuevo framework aún en modo de incubación, pero muy maduro y de alta calidad.
http://incubator.apache.org/wink/
Implementa la especificación JAX-RS, tiene marco de cliente y servidor para el desarrollo de REST. Apache respalda este proyecto, eso siempre es una buena señal (y una buena licencia :-))
Lo que más me gusta de este framework es la integración intuitiva con Spring, es muy útil si quieres que tu framework se configure y amplíe fácilmente.
Restlet también admite anotaciones en su versión 2.0, tanto en el lado del cliente como en el del servidor. La API de JAX-RS también se admite como una extensión.
Aquí hay un ejemplo simple para el lado del servidor:
public class HelloWorldResource extends ServerResource {
@Get
public String represent() {
return "hello, world";
}
}
En el lado del cliente:
// Outputting the content of a Web page
new ClientResource("http://www.restlet.org").get().write(System.out);
Para obtener más documentación, consulte esta página .
Jersey es realmente fácil para ambos. Para escribir servicios web, usa anotaciones:
@Path("/helloworld")
public class HelloWorldResource {
// The Java method will process HTTP GET requests
@GET
// The Java method will produce content identified by the MIME Media
// type "text/plain"
@Produces("text/plain")
public String helloWorld() {
// Return some cliched textual content
return "Hello World";
}
}
Para un cliente:
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/helloworld");
String s = webResource.get(String.class);
System.out.println(s); // prints Hello World
Restlet parece que debería proporcionar lo que estás buscando:
- Soporte para cliente y servidor (en una API relativamente simétrica)
- Enlace de URL inteligente
- comprensión tipo mime (dados los tipos de mime aceptados, le pedirá a sus recursos su representación en ese tipo)
- Admite las anotaciones JAX-RS (al igual que Jersey)