Pergunta

Quais são as melhores estruturas para a implementação de estruturas de repouso do cliente e do servidor em Java? Eu tenho lutado um pouco para encontrar uma solução fácil de usar.

Atualizar: Jersey e Restlet parecem boas opções. Provavelmente usaremos RestLet, mas experimentaremos ambos.

Foi útil?

Solução

RestLet Parece que deve fornecer o que você está procurando:

  • Suporte para cliente e servidor (em uma API relativamente simétrica)
  • Vinculação inteligente de URL
  • Entendimento do tipo MIME (dados os tipos de MIME aceitos, ele solicitará seus recursos para a representação deles nesse tipo)
  • Suporta anotações Jax-Rs (assim como Jersey)

Outras dicas

Jersey é realmente fácil para ambos. Para escrever serviços da web, você usa anotações:

@Path("/helloworld")
public class HelloWorldResource {

    // The Java method will process HTTP GET requests
    @GET
    // The Java method will produce content identified by the MIME Media
    // type "text/plain"
    @Produces("text/plain")
    public String helloWorld() {
        // Return some cliched textual content
        return "Hello World";
    }
}

Para um cliente:

Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/helloworld");
String s = webResource.get(String.class);
System.out.println(s); // prints Hello World

Dar uma olhada em DropWizard também.

O RestLet também suporta anotações em sua versão 2.0, tanto no cliente quanto no servidor. A API JAX-RS também é suportada como uma extensão.

Aqui está um exemplo simples para o lado do servidor:

public class HelloWorldResource extends ServerResource {

    @Get
    public String represent() {
        return "hello, world";
    }

}

No lado do cliente:

// Outputting the content of a Web page  
new ClientResource("http://www.restlet.org").get().write(System.out);

Para mais documentação, Verifique esta página.

Há o novo Jboss ' Restasy biblioteca. Parece estar sob rápido desenvolvimento desde o seu lançamento inicial. Não faço ideia se é bom; Está na minha lista de 'conferir'.

Você pode dar uma olhada na implementação do CXF JAX-RS. Para uma lista completa de seus recursos, verifique o Site CXF para Jax-Rs. A comunidade por trás do projeto parece ser muito ativa (julho de 2013). Uma indicação disso é o número de mensagens por dia no Listas de correspondência CXF.

Não o usei pessoalmente, mas algumas equipes com as quais trabalho estão usando o Spring 3 MVC. Descanse na primavera 3: @mvc Parece uma boa visão geral do blog. Os recursos RESTful incluem "Modelos de URI", "Negociação de Conteúdo", "Conversão do Método HTTP", "Suporte ETAG" e muito mais.

Editar: Além disso, veja esta pergunta: Alguém pode recomendar uma estrutura da Web Java baseada no MVC e suporta REST?

Eu posso recomendar o Apache Wink, uma nova estrutura ainda no modo de incubação, mas muito madura e de alta qualidade.

http://incubator.apache.org/wink/

Ele implementa a especificação JAX-RS, possui uma estrutura de clientes e servidores para o desenvolvimento do REST. Apache está por trás deste projeto - isso é sempre um bom sinal (e uma boa licença :-))

O que eu mais amo nessa estrutura é a integração intuitiva com a primavera, é muito útil se você deseja que sua estrutura seja facilmente configurada e estendida.

ATUALIZAÇÃO: O Xydra inquieto não é mais mantido +++ se você estiver usando o Goolge AppEngine antes de liberar um recurso "Reserve Instância", você pode considerar Xydra inquieto que tem poucos recursos, mas carrega rapidamente.

Meu favorito é a primavera MVC, você tem suporte para o lado do cliente e do servidor ... e também tem suporte para Android =)

Por exemplo, você pode ver um exemplo de Android da primavera aqui

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