Cliente Básico Rest usando Jersey

Para comunicação entre aplicação java o cliente do Jersey é uma boa opção por ser muito simples de utilizar, com poucas linha de código é possível fazer um webservice Rest.

O exemplo baixo é a comunicação de 2 projetos java onde um projeto enviar um json com uma descriação e o projeto webservice(ws) apenas retorna um ok.

O projeto do webservice(projeto-ws) contém classe básica, utilizando apenas recursos do javaee, onde apenas espera um json com uma descrição através de um http post.

Projeto-ws : WSApp.java

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/app")
public class WSApp {

    @POST
    @Path("/post")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response postApp(AppMessage json) {
        return Response.ok(xml).build();
    }
}
A classe WSApp.java deverá estar em um projeto web.

Para manter a consistência dos dados trafegados pelo webservice foi criado uma classe comum entre os 2 projetos
Projeto-commons : AppMessage.java

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class AppMessage {

    private String descricao;

    public AppMessage(String descricao) {
        this. descricao = descricao;
    }

    gets / sets
 
}
Não é exigido a criação dessa classe, poderia simplesmente enviar um parâmetro String, mas caso for enviado vários parâmetros essa classe facilita a consistência do dados e praticidade de enviar apenas um parâmetro objeto ao invés de vários parâmetros.

Projeto-cliente : ClientJersey.java

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;

public void chamarWs() {
    Client client = Client.create(new DefaultClientConfig());
    WebResource webResource = 
    client.resource("http://localhost:8080/projeto-ws/rest/app/post");
    webResource.type(MediaType.APPLICATION_JSON)
               .post(AppMessage.class, new AppMessage(this.descricao));
}

  • Client : cria um cliente com a configuração padrão do Jersey;
  • WebResource : criar um recurso web onde será configurado o endereço de destino no seu construtor , no atributo “type” é o tipo de arquivo de comunicação, no caso é um JSON e no atributo “post” está dizendo que a comunicação será afeito através de um HTTP POST passando o tipo e o valor no construtor do método que será enviado pelo webservice.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s