Criando Web Services RESTful com Jersey, JPA e MySQL

Aprenda neste artigo a implementar serviços para um CRUD RESTful para cadastro de clientes.

Fique por dentro
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 pelodesenvolvimento de um serviço REST utilizando o Jersey, implementação dereferência da especificação JAX-RS.

Além disso, será utilizada a especificaçãoJPA e o Hibernate como ferramenta ORM para fazer o mapeamento objeto relacionalentre 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 nomercado 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 dosserviços, essa opção passou por várias melhorias ao longo dos anos,principalmente relacionadas à segurança.

No entanto, os web services SOAP acabaramficando 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 formatospara comunicação e troca de informações (JSON e XML), popularmente utilizadosno 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 queviabiliza 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." [...] continue lendo...

Artigos relacionados