REST (REpresentational State Transfer) é um estilo de arquitetura para sistemas de hipermídia distribuídos, como a World Wide Web.
O conceito dos recursos identificados por identificadores de recursos universais (URIs) é central para a arquitetura RESTful. Esses recursos podem ser manipulados usando uma interface padrão, tal como HTTP, e as informações são trocadas usando representações desses recursos. Neste tutorial,
você primeiro aprende um pouco sobre REST e, em seguida, como o NetBeans IDE 6.1 suporta esse estilo de arquitetura.
Servidor da aplicação ou Web compatível com Java EE
Servidor Web Tomcat 6.0 e/ou servidor da aplicação GlassFish v2 Importante: Se você usa Tomcat com este tutorial, consulte o NetBeans Wiki sobre Tomcat com REST
Os serviços Web RESTful são serviços construídos com o estilo de arquitetura RESTful.
A construção de serviços Web com a abordagem RESTful está surgindo como uma alternativa popular ao uso de tecnologias baseadas em SOAP para implantação de serviços na Internet, por ser mais leve e possuir a capacidade de transmitir dados diretamente através de HTTP.
O IDE oferece suporte ao rápido desenvolvimento de serviços Web RESTful usando a JSR 311 - API de Java para serviços Web RESTful (JAX-RS) e Jersey, a implementação de referência para JAX-RS.
Além de construir serviços Web RESTful, o IDE também oferece suporte ao teste e à construção de aplicações cliente que acessem serviços Web RESTful e à criação de código para chamar serviços Web (baseados tanto em RESTful quanto em SOAP).
Veja uma lista dos recursos RESTful fornecidos pelo IDE:
Criação rápida de serviços Web RESTful a partir de padrões e classes de entidade JPA.
Geração rápida de código para chamar serviços Web como o Google Maps, a pesquisa de notícias do Yahoo e o StrikeIron, arrastando e soltando componentes da paleta de componentes RESTful.
Geração de stubs de cliente JavaScript de serviços Web RESTful para construir aplicações cliente RESTful.
Geração de cliente de teste para testar serviços Web RESTful.
Visualização lógica para navegação fácil de classes de implementação do serviço Web RESTful no seu projeto.
Neste tutorial, você aprenderá como o IDE o ajuda na geração, implementação e teste de serviços Web RESTful.
Gerando classes de entidade de um banco de dados
O objetivo deste exercício é criar um projeto e gerar classes de entidade a partir de um banco de dados.
Escolha Arquivo > Novo projeto. Em Categorias, selecione Web. Em Projetos, selecione Aplicação Web e clique em Próximo.
Em Nome do projeto, indique CustomerDB.
Em servidor, selecione GlassFish. Clique nas opções restantes e clique em Terminar.
Abra a aba Serviços. Em Bancos de dados, clique com o botão direito do mouse em Java DB e inicie-o.
Clique com o botão direito do mouse no nó CustomerDB e escolha Novo > Classes de entidade de um banco de dados. Como alternativa, você pode selecioná-la na categoria Persistência no assistente para Novo arquivo (Ctrl-N).
No painel Tabelas de banco de dados, selecione a fonte de dados jdbc/sample no campo suspenso Fonte de dados.
Observação: No Tomcat, essa fonte de dados talvez não exista. Nesse caso, escolha Nova fonte de dados no campo suspenso Fonte de dados. A caixa de diálogo Criar fonte de dados se abre. Digite jdbc/sample no campo Nome JNDI. No campo suspenso Conexão de banco de dados, selecione jdbc:derby://hostname:1527/sample [app on APP]. Clique em OK. A caixa de diálogo fecha e você retorna ao painel Tabelas de banco de dados. Consulte também o tutorial Serviço RESTful no Tomcat para NetBeans IDE 6.0.
Em Tabelas disponíveis, selecione CUSTOMER e, em seguida, clique em Adicionar. A tabela DISCOUNT_CODE, que possui um relacionamento com a tabela CUSTOMER, também é adicionada automaticamente à lista Tabelas selecionadas. Agora você deve ver o seguinte:
Clique em Próximo.
Em Pacote, digite customerdb. Agora você deve ver o seguinte:
Clique em Criar unidade de persistência. A caixa de diálogo seguinte é exibida:
Clique em criar e, em seguida, em Terminar.
Observe a janela Projetos. Agora você deve ver o seguinte:
Gerando serviços Web RESTful a partir de classes de entidade
O objetivo deste exercício é gerar serviços Web RESTful a partir das classes de entidade que geramos na seção anterior.
Clique com o botão direito do mouse no pacote que contém as classes de entidade e escolha Novo > Serviços Web RESTful a partir de classes de entidade.
No assistente para Novos serviços Web RESTful a partir de classes de entidade, clique em Adicionar tudo. Depois que as classes de entidade aparecem no campo Classes de entidade selecionadas, clique em Próximo.
No próximo painel, deixe os padrões inalterados, como mostrado abaixo:
Aqui você pode ver tudo que o IDE irá gerar para você. O IDE usa o padrão item de contêiner para gerar as classes do recurso. Por exemplo, para a classe de entidade Customer, o IDE gera um recurso de contêiner chamado CustomersResource e um recurso de item chamado CustomerResource. Além disso, para cada classe de recurso, o IDE gera uma classe de conversor usada para gerar a representação da instância de entidade correspondente, tal como CustomersConverter e CustomerConverter. Além disso, existe uma classe de conversor adiciona chamada conversor de referência, tal como CustomerRefConverter, para representar relacionamentos.
Clique em Terminar.
Observe a janela Projetos. Agora você deve mostrar o seguinte:
O nó Serviços Web RESTful na janela Projetos exibe todos os serviços Web RESTful de seu projeto. O valor entre colchetes, tal como [/customers/], é o valor do modelo da URI. Você também pode navegar para o arquivo de código-fonte, clicando duas vezes nesse nó. Essa visualização também existe todos os métodos HTTP e métodos de localizador de sub-recurso. Novamente, você pode navegar para os métodos, clicando duas vezes nos nós.
Agora que nossas classes de entidade e serviços Web RESTful foram gerados, vamos testar a nossa aplicação. O IDE fornece um utilitário prático para testar serviços Web RESTful. Usaremos o mesmo na próxima seção.
Testando os serviços Web RESTful
O objetivo deste exercício é testar a nossa aplicação.
Clique com o botão direito do mouse no nó do projeto e escolha Testar serviços Web RESTful. O servidor se inicia e a aplicação é implantada. Quando o deployment estiver concluído, o navegador exibe sua aplicação, com um link para cada um dos serviços Web:
À esquerda está o conjunto de recursos raiz. Aqui eles se chamam customers e discountCodes.
Primeiro selecione um recurso raiz, tal como customers. Clique na lista suspensa Métodos para selecionar GET(application/xml) ou GET(application/json). Clique em Testar. O resultado é exibido na seção Saída do teste:
Existem 4 abas na seção Saída do teste. A visualização Tabular é uma visualização plana que exibe todas as URIs no documento resultante, para o qual você pode navegar, clicando nos links. A visualização Bruto exibe os dados reais retornados. Dependendo do tipo de mime selecionado (application/xml ou application/json), os dados exibidos estarão no formato XML ou JSON, respectivamente. A aba Cabeçalhos exibe as informações do cabeçalho HTTP. Também existe uma aba chamada Monitor de HTTP, que exibe solicitações e respostas HTTP reais enviadas e recebidas.
Saia do navegador e retorne ao IDE.
Adicionando um recurso Google Map
O objetivo deste exercício é adicionar a funcionalidade Google Map aos nossos serviços Web RESTful.
Abra a classe CustomerResource no editor.
Adicione os métodos seguintes a CustomerResource:
@GET
@ProduceMime("text/html")
public String getGoogleMap() {
// Drag and drop the getGoogleMap operation here
return "";
}
//Gets invoked by going to browser and accessing any customer (ie /customers/1/googleMap)
/**
* Returns sub-resource.
*/
@Path("googleMap/")
@GET
@ProduceMime("text/html")
public String getGoogleMapResource() {
return getGoogleMap();
}
Inscreva-se para obter uma chave do Google Map em http://www.google.com/apis/maps/signup.html. A caixa de diálogo Solicitação de chave do Google Map possui um campo para a URL do seu site. Digite http://localhost:8080 nesse campo.
No IDE, abra a aba Serviços e expanda o nó Serviços Web. Em Serviços Web, expanda Google. Em Google, expanda Serviço de mapa.
Arraste o item getGoogleMap e solte-o no corpo do método getGoogleMap criado na Etapa 2, antes da linha return = null;. A caixa de diálogo Personalizar getGoogleMap SAAS se abre. Aceite os padrões e clique em OK.
O IDE adiciona o seguinte bloco de teste ao método getGoogleMap na classe CustomerResource:
Abra googlemapserviceauthenticator.properties. Defina a propriedade api_key igual a chave da API que você obteve do Google na Etapa 3.
Abra a aba Serviços e inicie o servidor de aplicações.
Clique com o botão direito do mouse no nó do projeto CustomerDB e escolha Testar serviços Web RESTful. O IDE implanta e reimplanta seu projeto no servidor e abre uma janela do navegador com o cliente de teste.
Clique em customers na barra lateral esquerda. Critérios de teste para customers aberto no painel principal. Deixe os padrões e clique em Testar. Uma tabela de clientes se abre.
Selecione um cliente na tabela, tal como customer1. Clique no cliente. Critérios de teste desse cliente abertos no painel principal. No menu suspenso, selecione o tipo MIME text/html. Clique em Testar. GoogleMap desse endereço aberto na Visualização bruta.
Observação: Se o GoogleMaps não encontrar um endereço, ele mostra uma visualização aproximada do oceano.
Você pode substituir a URL por http://localhost:8081/CustomerDB/resources/customers/2/googleMap, .../3/googleMap, e assim por diante até 25, para ver a localização do mapa de todos os clientes.
Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos dos recursos de desenvolvimento de Java EE do NetBeans IDE, inscreva-se na lista de endereçamento de .