Je commence un nouveau projet Java qui nécessitera une API RESTful. Ce sera une application professionnelle SaaS destinée aux clients mobiles.
J'ai développé un projet avec Java EE 6, mais je ne suis pas très familier avec l'écosystème, car la plupart de mon expérience concerne la plate-forme Microsoft.
Quel serait un choix judicieux pour une implémentation JAX-RS pour un nouveau projet tel que décrit?
À en juger par la liste de Wikipedia , les principaux concurrents semblent être Jersey, Apache CXF, RESTeasy et Restlet. Mais la comparaison des implémentations JAX-RS citées sur Wikipedia date de 2008.
Mes premières impressions de leurs pages d'accueil respectives sont les suivantes:
- CXF vise à être une solution très complète (me rappelle WCF dans l'espace Microsoft), ce qui me laisse penser qu'il peut être plus complexe à comprendre, à configurer et à déboguer que ce dont j'ai besoin;
- Jersey est l’implémentation de référence et constitue peut-être un bon choix, mais c’est un héritage de Sun et je ne sais pas comment Oracle le traite (la page d’annonces ne fonctionne pas et le dernier avis de validation date de 4 mois);
- RESTeasy vient de JBoss et constitue probablement une option solide, bien que je ne sois pas sûr d'apprendre la courbe;
- Restlet semble être populaire, mais il a beaucoup d’histoire. Je ne sais pas dans quelle mesure il est à jour dans le monde Java EE 6 ou s’il comporte un état d’esprit J2EE lourd (comme beaucoup de configuration XML).
Quels seraient les avantages de chacune de ces alternatives? Qu'en est-il de la courbe d'apprentissage? Support technique? Outils (par exemple, assistants NetBeans ou Eclipse)? Qu'en est-il de la facilité de débogage et du déploiement? Est-ce que l'un de ces projets est plus à jour que les autres? Dans quelle mesure sont-ils stables?
Réponses:
J'ai appris à aimer Dropwizard pour sa solution globale
Au lieu d’opter pour une approche de conteneur d’applications imposante, Dropwizard préconise une solution légère offrant des cycles de développement beaucoup plus rapides. Essentiellement, il fournit la colle pour les frameworks bien connus suivants:
La combinaison de ce qui précède, associée à une approche solide des tests fonctionnels, donne une solution complète pour rendre votre service opérationnel rapidement.
Ouais? Et la question JAX-RS que j'ai posée ...
Vous remarquerez que leur choix était Jersey, la mise en œuvre de référence JAX-RS. Étant un gars de RESTEasy, je pensais que cela poserait un problème, mais la courbe d'apprentissage était nulle. Les deux sont largement interchangeables. Cependant, je dirais que le client Jersey offrait une interface fluide pour la construction de tests. Un exemple serait ...
la source
Vous pouvez jeter un coup d'œil à cette question , qui traite de certaines expériences d'autres développeurs.
Je peux personnellement recommander Jersey. Il est très facile à utiliser, et il a un bon suivi parce que c'est l'implémentation de référence. Cela signifie également qu'il sera maintenu et pris en charge pour un temps proche.
la source