Por que eu devo ler este artigo:Este artigo é útil por demonstrar, passo a passo, como desenvolver um serviço RESTful com as operações de um CRUD para um cadastro de clientes totalmente web através de um projeto Java EE com Maven. Para que você possa compreender e aprender como utilizá-las, este projeto irá envolver uma gama de tecnologias da plataforma Java com o objetivo de criar uma solução de qualidade e escalável.

Para isso, será apresentada a construção de um DER para o banco de dados MySQL seguido pelo desenvolvimento de um serviço REST utilizando o Jersey, implementação de referência da especificação JAX-RS.

Além disso, será utilizada a especificação JPA e o Hibernate como ferramenta ORM para fazer o mapeamento objeto relacional entre as tabelas do banco de dados e as classes Java.

Ao final, você saberá como implementar seus primeiros serviços web, recurso cada vez mais comum no mercado de software, que busca soluções capazes de prover diferentes interfaces com o usuário e de fácil integração.

Durante muito tempo os web services baseados em SOAP foram praticamente a única solução para a comunicação e implementação de sistemas distribuídos.

Devido a isso e visando a qualidade dos serviços, essa opção passou por várias melhorias ao longo dos anos, principalmente relacionadas à segurança.

No entanto, os web services SOAP acabaram ficando complexos, de difícil implementação e com custos elevados de adoção. A partir de então, a opção por esse tipo de web service passou a ser inviável em alguns cenários, seja pelo custo, por recursos de hardware e de software ou mesmo pelo grande consumo de banda da rede, principalmente por parte dos dispositivos móveis, que ainda não têm uma conexão de alta velocidade a preços acessíveis.

O protocolo SOAP necessita de uma série de parâmetros e configurações no formato XML para viabilizar a troca de dados entre cliente e servidor e isso torna as mensagens longas tanto para tráfego na rede quanto para o dispositivo cliente processar a resposta.

O uso de web services surge da necessidade de se ter uma aplicação distribuída e escalável, necessidade esta que se espalha pelos mais diversos setores de negócio por todo o mundo, seja para integrar sistemas em diferentes plataformas, como os dispositivos móveis, seja para conectar sistemas web a sistemas legados, expor um canal de comunicação para clientes ou parceiros, dentre outras necessidades.

Neste cenário, com o intuito de facilitar a comunicação entre sistemas, podemos fazer uso do protocolo HTTP e usufruir do padrão arquitetural REST para implementar os serviços web, simplificando assim a troca de dados entre cliente e servidor.

Como um grande diferencial, o REST suporta os principais formatos para comunicação e troca de informações (JSON e XML), popularmente utilizados no desenvolvimento de sistemas distribuídos e em outras aplicações.

Conhecido por ser um estilo híbrido derivado de vários estilos arquiteturais baseados em rede, o REST tem como idealização e pilar a implementação de serviços web baseados no protocolo HTTP. O termo surgiu nos anos 2000, na dissertação do coautor do protocolo HTTP, Dr. Roy Thomas Fielding, para obtenção do título de PhD, com a dissertação “Architectural Styles and the Design of Network-based Software Architectures”.

Neste artigo iremos desenvolver um serviço RESTful responsável por viabilizar um cadastro de clientes com todas as funcionalidades de um CRUD. O desenvolvimento desse cadastro consiste na implementação de um web service para que um cliente possa consumir e realizar as operações básicas de acesso ao banco de dados.

Instalando o Eclipse Luna

Para o desenvolvimento do projeto “cadastro de clientes” iremos utilizar o Eclipse Luna. Sendo assim, baixe esta versão na página do Eclipse e então descompacte o arquivo em um diretório de sua preferência.

Ao executar esta IDE pela primeira vez é solicitado ao usuário que informe um diretório para servir como ambiente de trabalho. O workspace nada mais é do que uma pasta adotada pelo Eclipse para salvar os projetos que ele está gerenciando.

Criando o projeto com Eclipse e Maven

Para criar o projeto no Eclipse, clique no menu File > New > Other. Logo após, será exibida uma nova janela, conforme a Figura 1, para que seja selecionado o wizard que auxiliará na criação do projeto. Neste caso, selecione a opção Maven > Maven Project e clique em Next.

Figura 1. Selecionando o wizard Maven Project.

Na próxima tela, de criação do projeto Maven, deixe marcada a opção Use default workspace location para que seja utilizado o workspace configurado ao executar o Eclipse pela primeira vez. Em seguida, clique mais uma vez em Next (vide Figura 2).

Figura 2. Setando o workspace para o projeto.

Agora, conforme apresentado na Figura 3, deve ser selecionado o Archetype do Maven a ser utilizado para criar o projeto. Neste caso, selecione a opção maven-archtype-webapp, pois iremos criar um projeto Java EE.

O Archetype é uma espécie de template que viabiliza a criação de projetos com base em uma tecnologia ou especificação, como JSF, JPA, Spring, Struts, dentre outras. Feito isso, clique em Next.

Figura 3. Selecionando o Archetype do Maven para o projeto cadastro de clientes.

A última tela do wizard, apresentada na Figura 4, mostra alguns campos que devem ser preenchidos para finalizar a criação do projeto. Nela, deve ser informado o group id (geralmente informa-se o site da organização), o id do artefato (identificador do projeto), a versão deste e o nome completo do pacote base.

Figura 4. Definição dos dados para identificação do projeto.

Após clicar em Finish, em algumas ocasiões pode ocorrer um erro de acesso à pasta do repositório local do Maven, informando que não foi possível definir esse repositório. Para solucioná-lo você deve deletar a pasta repository para que o Eclipse possa criá-la novamente com as permissões de acesso corretas.

O local do repositório pode ser verificado na opção Local Repository, conforme apresentado na Figura 5, nas preferências do Eclipse.

O repositório nada mais é que uma pasta na m ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo