Criando e consumindo um serviço rest com java

Estou participando da atividade de migrar a arquitetura de um sistema que utiliza JSF com managed bean para uma arquitetura orientada a serviço.

Tinha algumas dúvidas a respeito das anotações que eram utilizadas no service, e por esse motivo decidi escrever esse post. Vamos iniciar pelo código 😀

Crie um projeto utilizando o artifact id: maven-archetype-webapp. Adicione as seguintes dependências no pom.xml.

Para esse exemplo estou utilizando a implementação Resteasy do JAX-RS com o servidor de aplicação JBoss 7.1.

Adicione o seguinte conteúdo no web.xml

Crie uma classe que será o nosso service.

A anotação @Path é o caminho de acesso para o nosso serviço. Exemplo: locahost:8080/nomeAplicacao/mapping.prefix/@Path. Irá ficar mais claro, quando fizermos uma chamada de um método. Adicionei também um ArrayList de pessoas que irá simular o nosso crude. 🙂

Antes de apresentar os métodos. Vamos entender a respeito de algumas anotações que serão adicionadas.

@POST – Utilizado para gravar alguma informação.
@PUT – Utilizado para editar alguma informação.
@DELETE – Utilizado para excluir alguma informação.
@GET – Utilizado para obter alguma informação.

Agora vamos criar o primeiro método de inclusão.

Uma outra anotação importante é o @Produces que irá definir o tipo de saída para o response da chamada. Para esse caso foi definido a saída como texto. Contudo podemos ter vários tipos de saída, tais como: XML, JSON e etc. Além disso, foi definido o charset como UTF-8 para evitar problemas com caracteres especiais. Para testarmos o serviço, irei utilizar o Postman. Vejamos:

insertttttttttttt

A URL é composta da seguinte forma:

locahost:8080/ – Caminho do servidor de aplicação;
restful/ – Nome do projeto;
rest/ – Prefixo adicionado no web.xml com o param resteasy.servlet.mapping.prefix;
crude/ – @Path Adicionado no topo da classe;
insert – @Path Adicionado no topo do método.

A resposta do método e a lista de pessoas adicionadas.

Criando o método de edição:

Vejamos a chamada.

postman_edit

Retorno:

Criando o método exclusão:

Chamada:

postman_delete

Retorno:

Criando o método de consulta:

Chamada:

postman_select

Retorno:

Através do método get é possível passar parâmetros de entrada. Para isso, iremos apresentar dois exemplos.

Chamada:

postman_select_path

Retorno:

Segundo exemplo:

Chamada:

postman_select_query

Retorno:

Existem outras anotações além da @PathParam e @QueryParam que não irei abordar nesse post. Recomendo a leitura desse post para quem quiser aprender um pouco mais. Quem quiser acesso ao código fonte desse post clique aqui. Por fim era isso. 🙂

Deixe uma resposta