Les frameworks les plus simples pour implémenter les services Web Java REST [fermé]
Quels sont les meilleurs frameworks pour implémenter les frameworks REST client et serveur en Java? J'ai eu un peu de mal à trouver une solution facile à utiliser.
Update : Jersey et Restlet semblent être de bonnes options. Nous utiliserons probablement Restlet mais nous expérimenterons avec les deux.
10 answers
Restlet sonne comme il devrait fournir ce que vous cherchez:
- Prise en charge du client et du serveur (dans une api relativement symétrique)
- Liaison d'URL intelligente
- compréhension du type mime (étant donné les types mime acceptés, il demandera à vos ressources leur représentation dans ce type)
- Prend en charge les annotations JAX-RS (tout comme Jersey)
Maillot est vraiment facile pour les deux. Pour écrire des services web, vous utilisez des annotations:
@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";
}
}
Pour un client:
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
Jetez un oeil àdropwizard aussi.
Restlet prend également en charge les annotations dans sa version 2.0, à la fois côté client et côté serveur. L'API JAX-RS est également prise en charge en tant qu'extension.
Voici un exemple simple pour le côté serveur:
public class HelloWorldResource extends ServerResource {
@Get
public String represent() {
return "hello, world";
}
}
Côté client:
// Outputting the content of a Web page
new ClientResource("http://www.restlet.org").get().write(System.out);
Pour plus de documentation, consultez cette page.
Il y a la nouvelle bibliothèque RESTEasy de JBoss. Il semble être en développement rapide depuis son lancement initial. Je ne sais pas si c'est bon; c'est sur ma liste "check it out".
Vous pouvez jeter un oeil à l'implémentation CXF JAX-RS. Pour la liste complète de ses fonctionnalités, consultez le site Web CXF pour JAX-RS. La communauté derrière le projet semble être très actif (juillet 2013). Une indication de cela est le nombre de messages par jour dans les listes de diffusion CXF.
Je ne l'ai pas utilisé personnellement mais certaines équipes avec lesquelles je travaille utilisent Spring 3 MVC. REST in Spring 3: @MVC ressemble à un bon aperçu de l'article de blog. Les fonctionnalités RESTful incluent "Modèles d'URI", "Négociation de contenu", "Conversion de méthode HTTP", "Support ETag" et plus encore.
Edit : Aussi, voir cette question: Quelqu'un peut-il recommander un framework Web Java basé sur MVC et prenant en charge REST ?
Je peux recommander Apache wink, un nouveau framework encore en mode incubation, mais très mature et de haute qualité.
Http://incubator.apache.org/wink/
Il implémente la spécification JAX-RS, il a à la fois un framework client et serveur pour le développement REST. Apache se tient derrière ce projet-c'est toujours un bon signe (et une bonne licence: -))
Ce que j'aime le plus dans ce framework, c'est l'intégration intuitive avec Spring, c'est très utile si vous voulez votre cadre pour être facilement configuré et prolongée.
MISE À JOUR: Xydra Restless n'est plus maintenu +++ Si vous utilisez Goolge AppEngine avant de publier une fonctionnalité "instance de réserve", vous pouvez envisagerXydra Restless qui a peu de fonctionnalités mais se charge rapidement.
Mon préféré est SpringMVC , vous avez un support pour les deux, côté client et serveur... Et vous avez aussi le support Android=)
Par exemple, vous pouvez voir un exemple de Printemps Android ici