JAX-RS Frameworks

J’ai travaillé avec l’implémentation de référence JAX-RS (Jersey). Je connais au moins deux autres frameworks (Restlet & Apache CXF).

Ma question est la suivante: quelqu’un at-il fait des comparaisons entre ces frameworks et, dans l’affirmative, quel cadre recommanderiez-vous et pourquoi?

FWIW nous utilisons Jersey avec ses nombreuses fonctionnalités (par exemple, WADL, vues implicites, support XML / JSON / Atom) qui a une communauté de développeurs large et dynamic et qui a une grande intégration de spring .

Si vous utilisez JBoss / SEAM, RESTeasy pourrait s’intégrer un peu mieux, mais si vous utilisez Spring for Dependency Injection, Jersey semble être la solution la plus simple, la plus populaire, la plus active et la plus fonctionnelle.

Restlet a une liste étendue d’extensions pour Spring, WADL, XML, JSON et bien d’autres, y compris une extension pour l’API JAX-RS.

C’est également le seul cadre disponible en six éditions cohérentes :

  • Java SE
  • Java EE
  • Google Web Toolkit
  • Google App Engine
  • Android
  • Environnements OSGi

Ses principaux avantages sont:

  • API client et serveur entièrement symésortingque lorsque JAX-RS a été conçu pour le traitement côté serveur
  • connecteurs pour d’autres protocoles que HTTP (mappage vers la sémantique HTTP) lorsque JAX-RS est uniquement HTTP
  • scope des fonctionnalités beaucoup plus large, y compris le contrôle de routage URI complet via l’API Restlet (mais peut intégrer avec Servlet si nécessaire)
  • provision complète pour le support NIO

L’API JAX-RS peut être un bon choix si vous êtes limité aux API approuvées par JCP (alors n’utilisez pas Spring ou une extension des projets JAX-RS comme Jersey et RESTeasy!), Sinon Restlet est le framework le plus mature ( publié initialement en 2005) et vous offrira, dans sa version 2.0, tous les avantages des annotations combinées à un framework puissant et extensible orienté classes.

Pour une liste de fonctionnalités plus longue , consultez cette page .

Cordialement, Jerome Louvel

Restlet ~ Fondateur et développeur principal ~ http://www.restlet.org

Mon équipe et moi utilisons beaucoup Restlet, mais pas ses fonctionnalités JAX-RS. Je peux vous dire que j’ai été très impressionné par les développeurs et la communauté Restlet. ils sont très actifs, engagés, réactifs et engagés dans un cadre stable, efficace, fiable et efficace. Je suis désolé, je ne peux pas répondre directement à votre intérêt principal, mais je pensais que vous pourriez trouver mon expérience avec Restlet précieuse.

Mon collègue mentionne pourquoi nous utilisons RESTeasy pour notre projet actuel dans les services Web RESTful de Java EE avec RESTeasy (JAX-RS) :

Son implémentation de référence, Jersey, n’a pas été retenue car nous avons eu du mal à bien l’intégrer avec EJB3 et Seam 2.0.

Nous utilisons l’implémentation RESTeasy de JAX-RS, car nous n’avons eu aucun problème pour l’intégrer à nos EJB et Seam. Il possède également une documentation suffisante.

Il y a une autre implémentation d’Apache, mais je ne l’ai pas essayée car elle utilise une version plus ancienne de JAX-RS.

Enfin, il existe un autre cadre pour les services Web RESTful pour Java appelé Restlet, mais nous ne l’avons pas favorisé car, au moment d’écrire ces lignes, il utilise une architecture personnalisée, même si un support JAX-RS approprié est en cours.

Il semble qu’il y ait 4 implémentations JAX-RS décentes, donc vous êtes probablement d’accord avec l’un d’entre eux. Pour ce que ça vaut, j’ai trouvé Jersey (1.0.2) vraiment sympa jusqu’à présent. Mes besoins sont assez modestes, le service de back-end simple, prendre soin de la plomberie et ainsi de suite. Et que Jersey fait très bien.

Apache Wink est très facile à utiliser, prend en charge JAX-RS et possède de nombreuses fonctionnalités au-delà de la norme.

Je n’utiliserais aucun cadre. Juste celui qui accompagne votre serveur d’applications. Si vous utilisez les spécificités d’un cadre, vous perdrez la portabilité et vous serez dans l’impossibilité de savoir si le fournisseur du serveur d’applications inclut une version différente de votre framework préféré. Je vais m’en tenir aux jax-ws.