Frameworks más fáciles de implementar servicios web REST de Java [cerrado]


¿Cuáles son los mejores frameworks 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 usaremos Restlet pero experimentaremos con ambos.

Author: Marcus Leon, 2009-09-30

10 answers

Restlet suena como 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 del tipo mime (dados los tipos mime aceptados, pedirá a sus recursos su representación en ese tipo)
  • Soporta anotaciones JAX-RS (al igual que Jersey)
 20
Author: Stephen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-05 23:58:39

Jersey es realmente fácil para ambos. Para escribir servicios web, utiliza 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
 23
Author: Droo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-30 03:58:56

Echa un vistazo a dropwizard también.

 6
Author: joshua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-25 19:55:44

Restlet también soporta anotaciones en su versión 2.0, tanto en el lado cliente como en el servidor. La API de JAX-RS también es compatible 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 más documentación, consulte esta página.

 3
Author: Jerome Louvel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-30 08:04:08

Está la nueva biblioteca de JBoss RESTEasy. Parece estar en rápido desarrollo desde su lanzamiento inicial. No tengo ni idea de si es bueno; está en mi lista de 'echa un vistazo'.

 2
Author: SteveD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-30 12:20:36

Podría echar un vistazo a la implementación de CXF JAX-RS. Para obtener una lista completa de sus características, consulte el sitio web de CXF para JAX-RS. La comunidad detrás del proyecto parece ser muy activa (julio de 2013). Una indicación de esto es el número de mensajes por día en las listas de correo CXF .

 1
Author: i000174,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-29 18:17:04

No lo he usado personalmente, pero algunos equipos con los que trabajo están usando Spring 3 MVC. DESCANSO en la primavera 3: @MVC parece un buen resumen de la publicación de blog. Las características RESTful incluyen "Plantillas URI", "Negociación de contenido", "Conversión de método HTTP", "Soporte ETag" y más.

Edit : También, vea esta pregunta: ¿Puede alguien recomendar un framework web Java que se base en MVC y soporte REST ?

 0
Author: Kevin Hakanson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:01:26

Puedo recomendar Apache wink, un nuevo framework todavía en modo de incubación, pero muy maduro y de alta calidad.

Http://incubator.apache.org/wink /

Implementa la especificación JAX-RS, tiene un framework cliente y servidor para el desarrollo REST. Apache está detrás de 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 tu marco para ser fácilmente configurado y ampliado.

 0
Author: LiorH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-08 17:50:41

ACTUALIZACIÓN: Xydra Restless ya no se mantiene +++ Si está utilizando Goolge AppEngine antes de que publiquen una función de "reserva de instancia", podría considerar Xydra Restless que tiene pocas características pero se carga rápidamente.

 0
Author: xamde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-22 17:03:24

Mi favorito es Spring MVC, tienes soporte para ambos, cliente y servidor... Y también tiene soporte para Android =)

Por ejemplo, puedes ver un ejemplo de Spring Android aquí

 -1
Author: Javier Manzano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-23 15:04:59