Pergunta

Estou procurando uma versão light do REST para um aplicativo Web Java que estou desenvolvendo.

Examinei o RESTlet (www.restlet.org) e o plugin REST para Struts 2, mas ainda não me decidi.Estou inclinado para o RESTlet, pois parece ser mais leve.

Alguém implementou uma camada RESTful sem nenhuma das estruturas ou com as estruturas?

Algum problema de desempenho que você viu por causa da nova camada da web?

A introdução do REST adicionou uma complexidade incontrolável ou irracional ao seu projeto?(Alguma complexidade é compreensível, mas o que quero dizer é simplesmente exagerar no seu design apenas para adicionar REST)

Foi útil?

Solução

Bem, eu usei bastante o Enunciate.Ele usa anotações simples para fornecer endpoints REST e/ou SOAP.

http://enunciate.codehaus.org

Além disso, Ryan Heaton sempre forneceu suporte de alto nível para as coisas também.

Outras dicas

Sou um grande fã do JAX-RS – acho que eles fizeram um ótimo trabalho com essa especificação.Eu o uso em vários projetos e tem sido uma alegria trabalhar com ele.

JAX-RS permite criar recursos REST usando POJOs com anotações simples que lidam com mapeamentos de URI, métodos HTTP e negociação de conteúdo, tudo perfeitamente integrado com injeção de dependência.Não há APIs complexas para aprender;apenas os principais conceitos REST (URIs, cabeçalhos/códigos de resposta e negociação de conteúdo) são necessários.FWIW JAX-RS é bastante Rails do ponto de vista do controlador

Existem diversas implementações de JAX-RS por aí - veja este tópico para uma discussão.

Minha recomendação pessoal é usar Jersey como tem a maior e mais ativa comunidade por trás dele, tem os melhores recursos no momento em que este artigo foi escrito (suporte WADL, visualizações implícitas, integração de primavera, ótima API de cliente REST);embora se você estiver usando o JBoss/SEAM, poderá descobrir que o RESTeasy se integra um pouco melhor.

Sou um grande fã do Restlet, mas costumo usá-lo para implementar aplicativos cuja função principal é ser um serviço web RESTful.Parece que você deseja adicionar uma API RESTful a um aplicativo existente.Se for esse o caso, a abordagem baseada em anotações do JAX-RS (ou do Enunciate) pode ser mais adequada para o seu projeto.

Quanto ao Restlet, posso dizer que fiquei muito impressionado com os desenvolvedores e com a comunidade;eles são muito ativos, engajados, responsivos e comprometidos com uma estrutura estável, eficiente, confiável e eficaz.Meu único aspecto favorito da estrutura é que ela é uma implementação básica do paradigma REST;portanto, não há incompatibilidade de impedância entre a API externa de um aplicativo Restlet e a implementação interna.Eu também gosto muito de como ele é flexível - ele pode ser executado dentro de um contêiner/servidor de aplicativo Java, como JBoss, Tomcat, Jetty, etc, ou independente, com uma biblioteca de servidor HTTP incorporada.

Você sabe que há uma nova API JCP para acessar serviços RESTful, também:

JAX-RS JCP311https://jsr311.dev.java.net/

A versão de código aberto é chamada Project Jersey

Estou trabalhando em uma API REST para gliffy.com e acabamos lançando o nosso próprio.Não queríamos trazer o Struts 2, Spring ou qualquer outro framework.Eu olhei para RESTLet e ​​achei incrivelmente confuso e complicado.

O Apache possui uma implementação da especificação JAX-RS, mas ela não está finalizada e também possui algumas peculiaridades.Estamos planejando abrir o código de nossa solução, mas isso só acontecerá por alguns meses.

No entanto, fazer o seu próprio é fácil.A Especificação do Servlet oferece tudo o que você precisa e você pode facilmente conectar-se a um banco de dados via Hibernate (veja http://www.naildrivin5.com/daveblog5000/?p=39 para saber como configurar o JPA sem usar EJB3).

Achei restlet uma arquitetura muito elegante.Estou trabalhando no mundo .net então não foi uma opção para mim, mas consegui construir meu próprio framework seguindo os mesmos princípios básicos do restlet.Descobri que a conversão de nosso aplicativo SOA baseado em contrato WCF para um baseado em REST simplificou significativamente o aplicativo,

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top