Estou iniciando um novo projeto Java que exigirá uma API RESTful. Será um aplicativo de negócios SaaS que atende a clientes móveis.
Eu desenvolvi um projeto com o Java EE 6, mas não estou muito familiarizado com o ecossistema, pois a maior parte da minha experiência está na plataforma da Microsoft.
Qual seria uma escolha sensata para uma implementação JAX-RS para um novo projeto como o descrito?
A julgar pela lista da Wikipedia , os principais candidatos parecem ser Jersey, Apache CXF, RESTeasy e Restlet. Mas a comparação das implementações JAX-RS citadas na Wikipedia é de 2008.
Minhas primeiras impressões de suas respectivas páginas iniciais são as seguintes:
- O CXF pretende ser uma solução muito abrangente (me lembra o WCF no espaço da Microsoft), o que me faz pensar que pode ser mais complexo entender, configurar e depurar do que o que eu preciso;
- Jersey é a implementação de referência e pode ser uma boa escolha, mas é um legado da Sun e não tenho certeza de como a Oracle está tratando (a página de anúncios não funciona e o último aviso de confirmação é de 4 meses atrás);
- RESTeasy é do JBoss e provavelmente uma opção sólida, embora não tenha certeza sobre a curva de aprendizado;
- O Restlet parece ser popular, mas tem muito histórico, não tenho certeza de como está atualizado no mundo Java EE 6 ou se ele carrega uma mentalidade J2EE pesada (como muitas configurações XML).
Quais seriam os méritos de cada uma dessas alternativas? E a curva de aprendizado? Suporte de recursos? Ferramentas (por exemplo, assistentes do NetBeans ou Eclipse)? E quanto à facilidade de depuração e também implantação? Algum desses projetos está mais atualizado que os outros? Quão estáveis são eles?
Respostas:
Eu aprendi a amar o Dropwizard por uma solução geral
Em vez de seguir uma abordagem enorme de contêiner de aplicativos, o Dropwizard defende uma solução leve que oferece ciclos de desenvolvimento muito mais rápidos. Essencialmente, ele fornece a cola para as seguintes estruturas conhecidas:
A combinação dos itens acima, juntamente com uma abordagem sólida aos testes funcionais, fornece uma solução completa para colocar seu serviço em funcionamento rapidamente.
Sim? E a pergunta JAX-RS que eu fiz ...
Você notará que a escolha deles foi Jersey, a implementação de JAX-RS de referência. Sendo um cara RESTEasy, pensei que isso seria um problema, mas não havia nenhuma curva de aprendizado. Os dois são amplamente intercambiáveis. No entanto, eu diria que o cliente de Jersey ofereceu uma interface fluente para a construção de testes. Um exemplo seria ...
fonte
Você pode dar uma olhada nesta pergunta , que discute algumas experiências de outros desenvolvedores.
Eu pessoalmente posso recomendar Jersey. É muito fácil de usar e possui bons seguidores, porque é a implementação de referência. Isso também significa que ele será mantido e suportado pelos próximos anos.
fonte