Estoy comenzando un nuevo proyecto Java que requerirá una API RESTful. Será una aplicación empresarial SaaS que servirá a clientes móviles.
He desarrollado un proyecto con Java EE 6, pero no estoy muy familiarizado con el ecosistema, ya que la mayor parte de mi experiencia está en la plataforma de Microsoft.
¿Cuál sería una opción sensata para una implementación JAX-RS para un nuevo proyecto como el descrito?
A juzgar por la lista de Wikipedia , los principales contendientes parecen ser Jersey, Apache CXF, RESTeasy y Restlet. Pero la comparación de las implementaciones JAX-RS citadas en Wikipedia es de 2008.
Mi primera impresión de sus respectivas páginas de inicio es que:
- CXF pretende ser una solución muy completa (me recuerda a WCF en el espacio de Microsoft), lo que me hace pensar que puede ser más complejo de entender, configurar y depurar que lo que necesito;
- Jersey es la implementación de referencia y podría ser una buena opción, pero es un legado de Sun y no estoy seguro de cómo Oracle la está tratando (la página de anuncios no funciona y el último aviso de confirmación es de hace 4 meses);
- RESTeasy es de JBoss y probablemente sea una opción sólida, aunque no estoy seguro acerca de la curva de aprendizaje;
- Restlet parece ser popular pero tiene mucha historia, no estoy seguro de cuán actualizado está en el mundo Java EE 6 o si tiene una mentalidad J2EE pesada (como mucha configuración XML).
¿Cuáles serían los méritos de cada una de estas alternativas? ¿Qué pasa con la curva de aprendizaje? ¿Soporte de funciones? ¿Herramientas (por ejemplo, NetBeans o asistentes de Eclipse)? ¿Qué pasa con la facilidad de depuración y también la implementación? ¿Alguno de estos proyectos está más actualizado que los otros? ¿Qué tan estables son?
Respuestas:
He llegado a amar Dropwizard para una solución general
En lugar de optar por un enfoque de contenedor de aplicaciones enorme, Dropwizard aboga por una solución ligera que ofrezca ciclos de desarrollo mucho más rápidos. Básicamente, proporciona el pegamento para los siguientes marcos conocidos:
La combinación de lo anterior, junto con un enfoque sólido para las pruebas funcionales, brinda una solución completa para que su servicio funcione rápidamente.
¿Sí? Y la pregunta JAX-RS que hice ...
Notarás que su elección fue Jersey, la implementación de referencia JAX-RS. Siendo un tipo RESTEasy, pensé que esto sería un problema, pero había cero curva de aprendizaje. Los dos son en gran parte intercambiables. Sin embargo, diría que el cliente de Jersey ofreció una interfaz fluida para construir pruebas. Un ejemplo sería ...
fuente
Puede echar un vistazo a esta pregunta , que analiza algunas experiencias de otros desarrolladores.
Puedo recomendar personalmente Jersey. Es muy fácil de usar y tiene un buen seguimiento porque es la implementación de referencia. Esto también significa que se mantendrá y admitirá durante el próximo tiempo.
fuente