it-swarm-pt.tech

Frameworks JAX-RS

Eu tenho trabalhado com a implementação de referência JAX-RS (Jersey). Conheço pelo menos duas outras estruturas (Restlet & Apache CXF).

Minha pergunta é: alguém já fez alguma comparação entre essas estruturas? Em caso afirmativo, qual estrutura você recomendaria e por quê?

50
Shimi Bandiel

FWIW, estamos usando Jersey como seu pacote completo de recursos (por exemplo, WADL, visualizações implícitas, suporte a XML/JSON/Atom) tem uma comunidade de desenvolvedores grande e vibrante por trás e tem ótimas integração de primavera .

Se você usa o JBoss/SEAM, pode achar que o RESTeasy se integra um pouco melhor - mas se você usar o Spring for Dependency Injection, Jersey parecerá a implementação mais fácil, mais popular, ativa e funcional.

30
James Strachan

Restlet possui uma extensa lista de extensões para Spring, WADL, XML, JSON e muitas outras, incluindo uma extensão para a API JAX-RS.

É também a única estrutura disponível em seis edições consistentes :

  • Java SE
  • Java EE
  • Google Web Toolkit
  • Google AppEngine
  • Android
  • Ambientes OSGi

Seus principais benefícios são:

  • aPI de cliente e servidor totalmente simétrica quando o JAX-RS foi projetado para processamento no lado do servidor
  • conectores para outros protocolos que não HTTP (mapeamento para semântica HTTP) quando JAX-RS é apenas HTTP
  • escopo de recursos muito mais amplo, incluindo controle total de roteamento de URI por meio da API Restlet (mas pode integrar-se ao Servlet, se necessário)
  • provisão completa para suporte a NIO

A API JAX-RS pode ser uma boa opção se você estiver restrito a APIs aprovadas pelo JCP (não use Spring ou qualquer extensão dos projetos JAX-RS, como Jersey e RESTeasy!), Mas, caso contrário, o Restlet é a estrutura mais madura ( lançado inicialmente em 2005) e oferecerá, em sua versão 2.0, todos os benefícios das anotações combinadas com uma estrutura orientada a classe poderosa e extensível.

Por mais tempo lista de recursos, consulte esta página .

Atenciosamente, Jerome Louvel

Restlet ~ Fundador e desenvolvedor líder ~ http://www.restlet.org

26
Jerome Louvel

Minha equipe e eu usamos o Restlet extensivamente, mas não os recursos do JAX-RS. Posso dizer que fiquei muito impressionado com os desenvolvedores e a comunidade do Restlet; eles são muito ativos, engajados, receptivos e comprometidos com uma estrutura estável, eficiente, confiável e eficaz. Lamento não poder abordar diretamente seu interesse principal, mas achei que você poderia achar valiosa a minha experiência com o Restlet.

7
Avi Flax

Meu colega menciona por que estamos usando o RESTeasy em nosso projeto atual em serviços web RESTful em Java EE com RESTeasy (JAX-RS) :

Sua implementação de referência, Jersey, não foi escolhida porque tivemos problemas para integrá-la bem ao EJB3 e ao Seam 2.0.

Estamos usando a implementação RESTeasy do JAX-RS, porque não tivemos problemas para integrá-la aos nossos EJBs e Seam. Também possui documentação suficiente.

Existe outra implementação do Apache, mas ainda não tentei porque ele usa uma versão mais antiga do JAX-RS.

Finalmente, existe ainda outra estrutura para os serviços da Web RESTful para Java chamado Restlet, mas não a favorecíamos porque, no momento da redação deste artigo, ele estava usando uma arquitetura customizada, mesmo que JAX-RS adequado) apoio está em obras.

6
Peter Hilton

Descobrimos que o Apache Wink é muito fácil de trabalhar, suporta JAX-RS e possui muitos recursos além do padrão.

6
Shimi Bandiel

Parece que existem 4 implementações decentes do JAX-RS, então você provavelmente está bem com alguma delas. Pelo que vale a pena, eu achei Jersey (1.0.2) muito legal até agora. Minhas necessidades são um serviço de back-end bastante modesto e simples, cuidamos do encanamento e assim por diante. E esse Jersey faz muito bem.

6
StaxMan

Eu não usaria estrutura. Apenas o que acompanha o servidor de aplicativos. Se você usar detalhes específicos de uma estrutura, perderá a portabilidade e ficará no inferno se o fornecedor do servidor de aplicativos incluir uma versão diferente da sua estrutura favorita. Eu vou ficar com Jax-WS.

0
Fabián Escalante