corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Criando clientes de serviço RESTful em módulos do NetBeans

A partir do NetBeans IDE 6.9, o suporte nativo a REST está disponível em projetos de módulos do NetBeans. Agora é possível gerar diretamente o código do cliente RESTful em um módulo do NetBeans. Também é possível inserir código do cliente Jersey RESTful em um Java ou um aplicativo.

Neste tutorial, você criará um aplicativo da plataforma NetBeans que consumirá o serviço Twitter What Are You Doing, exibindo uma lista das mensagens de status de seus amigos do Twitter. Primeiro, você cria o aplicativo da plataforma. Seleciona as bibliotecas necessárias no aplicativo. Em seguida, cria um módulo NetBeans. Finalmente, adiciona um cliente RESTful e alguns elementos básicos de exibição ao módulo. O cliente utiliza autorização OAuth.

Conteúdo

O conteúdo desta página se aplica ao NetBeans IDE 6.9-7.1

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE Pacote de download do Java EE
Java Development Kit (JDK) versão 6 ou versão 7

Criando o aplicativo da plataforma

É possível adicionar bibliotecas do NetBeans IDE a um aplicativo da plataforma NetBeans. Nesta seção, você criará o aplicativo da plataforma e adicionará as bibliotecas necessárias.

 

Para criar a suíte do modelo:

  1. Clique em Arquivo > Novo projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS). O assistente para Novo projeto é aberto.
  2. Selecione a categoria Módulos do NetBeans. Em seguida, selecione o projeto Aplicativo da plataforma NetBeans. Clique em Próximo.
  3. Nomeie o projeto RestfulClientPlatformApp. Selecione uma localização para o projeto. Aceite as outras configurações padrão e clique em Terminar. O projeto RestfulClientPlatformApp é exibido na janela Projetos.
  4. Na janela Projetos, clique com o botão direito do mouse no nó do projeto RestfulClientPlatformApp e selecione Propriedades. A caixa de diálogo Propriedades é aberta.
  5. Na caixa de diálogo Propriedades, selecione a categoria Bibliotecas. Note que somente as bibliotecas da Plataforma foram incluídas.
  6. Expanda o nó para as bibliotecas corporativas. Marque a caixa Incluído para as Bibliotecas de serviço da Web RESTful.
    Propriedades da suíte exibindo as bibliotecas RESTful WS selecionadas para inclusão
  7. O botão Resolver está realçado em vermelho, pois as bibliotecas da Web RESTful dependem de outras bibliotecas que não estão incluídas na suíte. Clique no botão Resolver para incorporar essas bibliotecas.
  8. Clique em OK. O aplicativo da plataforma está pronto para que você crie o módulo do cliente.

Criando o módulo do cliente

Em apenas algumas etapas, você criará um módulo que servirá como um cliente para o serviço Twitter What Are You Doing. Os serviços de Twitter são registrado “fora do pacote” no gerenciador de serviços web do NetBeans IDE. É possível adicionar adicionais

Para criar o módulo e a funcionalidade do cliente

  1. Na janela Projetos, clique com o botão direito do mouse no subnó Módulos do RestfulClientPlatformApp e selecione Adicionar novo... O assistente Novo projeto do módulo é aberto.
  2. Nomeie o módulo TwitterClientModule. Aceite as configurações padrão nos outros campos e clique em Próximo. O painel de Configuração básica do módulo é aberto.
  3. Dê um nome arbitrário à base do nome do código, como org.my.twitter.friends. Aceite as configurações padrão nos outros campos e clique em Terminar. O TwitterClientModule agora aparece na janela Projetos, sob o nó Módulos do aplicativo da plataforma.
  4. Clique com o botão direito do mouse no nó TwitterClientModule e selecione Abrir projeto. Um nó TwitterClientModule agora aparece no nível raiz da janela Projetos.
    Janela Projetos mostrando o nó raiz TwitterClientModule
  5. Selecione o novo nó TwitterClientModule no nível raiz. Inicie o assistente Novo arquivo (Ctrl-N/⌘-N, ícone Novo arquivo ou menu de contexto do nó).
  6. No assistente Novo arquivo, selecione a categoria Serviços da Web e o tipo de arquivo cliente Java RESTful. Clique em Próximo. O painel do cliente Java do RESTful é aberto.
  7. Nomeie a classe TwitterClient e dê a ele um nome de pacote arbitrário ou selecione a base do nome do código que foi criada anteriormente.
    Assistente Novo cliente RESTful mostrando o nome do pacote e classe
  8. Em Selecionar o recurso REST, selecione IDE Registrado. Clique em Procurar e procure por Twitter > Twitter OAuth > [statuses] > [friends_timeline.{format}]. Selecione esse recurso e clique em OK.
    O recurso rest friends_timeline selecionado na caixa de diálogo Recursos REST disponíveis

    Observação: É possível registrar serviços web adicionais no IDE. Na janela Serviços, clique com o botão direito do mouse no nó Serviço Web e escolha Adicionar serviço Web. É possível adicionar um arquivo local ou um URL RESTful.
    Opção Adicionar serviço Web para gerenciador de Serviço Web, janela Serviços

  9. O OAuth é selecionado automaticamente como o tipo de autenticação. Aceite todos os padrões e clique em Terminar.
    Assistente novo Cliente RESTful concluído
  10. Uma caixa de diálogo de aviso é aberta. A caixa de diálogo perguntará se você deseja gerar artefatos java a partir das referências do esquema XML no arquivo WADL. Clique em Sim.
  11. Pode ser exibido outro aviso pedindo que você adicione os módulos ao classpath. Clique em OK.
    Caixa de diálogo de aviso sobre a falta de dependências
  12. Se for necessário adicionar módulos ao classpath, clique com o botão direito do mouse no nó TwitterClientModule e abra Propriedades do projeto. Vá à seção Bibliotecas e adicione os módulos utilizando o botão Adicionar dependência. Este botão abre uma lista de dependências do módulo para que seja explorada.
    Janela de propriedades do módulo do cliente Twitter, seção Bibliotecas

A classe TwitterClient é gerada e se abre no editor. A classe TwitterClient é complexa e contém os seguintes campos, métodos e classes internas:

  • CONSUMER_KEY: string de consumer key
  • CONSUMER_SECRET: string de consumer secret
  • initOAuth(): método para inicialização do OAuth
  • getFriendsTimeline(): método que corresponde ao método HTTP: getFriendsTimeline (do recurso REST) 
  • makeOAuthRequestUnique(): útil para várias chamadas de API em uma sessão
  • login: usado para efetuar logon no aplicativo Twitter (força a autenticação). Este método chama mais dois métodos gerados, getOAuthAccessToken e getOAuthRequestToken.

Depois, você obtém as chaves OAuth do Twitter e as adiciona ao TwitterClient.

Obtendo as chaves OAuth do Twitter

Para que o aplicativo Plataforma NetBeans possa acessar os dados do Twitter, é necessário as chaves CUSTOMER_KEY e CUSTOMER_SECRET, juntamente com uma string de verificação, proveniente do Twitter. O Twitter usa a autorização OAuth, que precisa destas chaves. No entanto, o OAuth é configurado com a intenção de que seja chamado por uma aplicação Web em um servidor. Para obter as chaves de autorização, registre uma aplicação Web "falsa".

Para obter as chaves OAuth do Twitter:

  1. Abra o navegador. Vá à página Twitter > Aplicativos e clique em Registrar um novo aplicativo . É necessário efetuar logon na conta do Twitter. Certifique-se de ter efetuado logon na conta correta caso você tenha várias contas.
  2. Digite Aplicativo Amigos da plataforma NB no campo de texto Nome do aplicativo.
  3. Digite uma descrição no campo Descrição. É necessário digitar uma descrição. Você pode colocar, por exemplo, "Aplicativo Plataforma NetBeans chamando a operação friends_timeline".
  4. Digite uma URL arbitrária no campo Site do aplicativo.
  5. Na opção Tipo de aplicativo, selecione o botão de opção Cliente.
  6. Na opção Tipo de acesso padrão, selecione o botão de opção Leitura e Gravação.
  7. Deixe as outras opções como padrão e clique em Salvar. A página do navegador se abre com os detalhes do aplicativo que você registrou. Os detalhes importantes são consumer key e consumer secret.
  8. Copie a consumer key do navegador. No IDE, localize a linha onde a CONSUMER_KEY está definida. Cole o valor da consumer key entre as aspas.
    TwitterClient mostrando a localização de CONSUMER_KEY e CONSUMER_SECRET
  9. Copie a chave consumer secret do navegador e cole-a no TwitterClient. Salve as alterações.

Projetando a janela

Para completar o projeto, adicione uma janela. Preencha a janela com componentes da UI e adicione ações de forma que, ao clicar em um botão, por exemplo, será exibida uma lista de status de amigos.

Para projetar a janela:

  1. na janela Projetos, clique com o botão direito do mouse no nó do módulo e selecione Novo > Janela. O assistente Nova janela é aberto com o painel Configurações básicas.
  2. No painel Configurações básicas, selecione a posição da janela do editor, selecione Abrir ao iniciar o aplicativo e clique em Próximo. O painel Nome, ícone e localização é aberto.
  3. No campo Prefixo do nome da classe, digite twitterFriendsStatus. Selecione o pacote org.my.twitter.friends. Clique em Terminar.
    Painel Nome, ícone e localização do assistente Nova janela, mostrando o prefixo do nome da classe e o nome do pacote
  4. O arquivo twitterFriendsStatusTopComponent é aberto na visualização Desenho. Uma paleta de componentes Swing da UI é aberto à direita.
    Visualização Desenho da nova janela e Paleta dos componentes swing, sem nenhum componente adicionado ainda
  5. Arraste os seguintes elementos da GUI para a área de desenho:
    Componente Texto de exibição Configurações
    Botão Obter status dos amigos

    Alterar o nome da variável para getStatusesButton.

    Propriedade "habilitado" desativada

    Propriedade "habilitado" desativada

    Botão Logon Alterar o nome da variável para loginButton.
    Painel de rolagem --  
    Área de texto -- Arrastar para o painel de rolagem

    Redimensione a área de texto/painel de rolagem e alinhe os botões conforme desejado.
    Visualização Desenho da nova janela mostrando a janela completa

  6. Clique duas vezes no botão Logon. O IDE gerará um método de ação para o botão e o editor alternará para a visualização Código-fonte com o método de ação em foco.
  7. Digite ou copie o seguinte código no corpo do método de ação do botão de logon. Este código inicia o método de logon do aplicativo no Twitter, habilita o botão getStatuses e desabilita o botão de logon. É preciso efetuar logon no aplicativo apenas uma vez. Observe que TwitterClient não precisa ser iniciado para chamar o método de logon.
    private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {                                   
       TwitterClient.login();
       getStatusesButton.setEnabled(true);
       loginButton.setEnabled(false);
    } 
  8. Clique duas vezes no botão getStatuses. O IDE gerará um método de ação para o botão e o editor alternará para a visualização Código-fonte com o método de ação em foco.
  9. Cole ou digite o seguinte código de manipulação no corpo do método de ação do botão getStatuses. Este código cria instâncias do TwitterClient e inicializa o OAuth, usando os tokens que o método login criou. O código chama, então, o getFriendsTimeline, obtém uma lista de status, adiciona uma linha com o nome de usuário e o texto de status a uma string e passa a string para a área de texto seguinte.
    private void getStatusesButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         
    TwitterClient client = new TwitterClient("xml");
    client.initOAuth();
    Statuses response = client.getFriendsTimeline(Statuses.class, null, null, null, "10");
    response.getStatus().size();
    String text = "";
    for (StatusType st : response.getStatus()) {
    text += st.getUser().getName() + ": " + st.getText() + "\n";
    }
    jTextArea1.setText(text);
    }
  10. O código tem alguns ícones de aviso para classes que não foram encontradas. Pressione Ctrl-Shift-I (⌘-Shift-I no MacOS). A caixa de diálogo Corrigir todas as importações é aberta. Selecione as classes twitter.twitteroauth.twitterresponse . Clique em OK.
    Caixa de diálogo Corrigir todas as importações mostrando as classes corretas a importar

O aplicativo agora está completo. Execute RestfulClientPlatformApp e uma plataforma NetBeans aparecerá com sua janela desenhada na seção Saída. Clique em Logon. É exibida uma caixa de diálogo com um link no qual você deve clicar para autorizar o aplicativo a acessar os dados.

Caixa de diálogo para autorizar o OAuth a passar os dados para o aplicativo

Clique no link e a página do navegador se abre com o Twitter perguntando se você permite que seu aplicativo acesse os dados do Twitter. Clique em Permitir e a página se atualiza exibindo um PIN. Copie o PIN e cole-o no campo da string de verificação da caixa de diálogo de autenticação. Clique em OK.

O botão Logon agora está desativado, e o botão Obter status dos amigos está ativado. Clique em Obter status dos amigos, e será exibida uma lista de mensagens dos últimos status dos seus amigos do Twitter.

Executando o aplicativo mostrando mensagens de status

Mais exercícios

Aqui estão mais algumas idéias para você explorar:

  • Adicionar outra janela ao módulo, utilizando outros métodos na API friends_timeline.
  • Adicione outro módulo ao projeto, utilizando um recurso diferente do Twitter.
  • Explore a Amostra de módulo do Facebook em Novo projeto > Amostras > Módulos do NetBeans > Amostra de módulo do Facebook

Veja também

Para mais informações sobre o uso do NetBeans IDE para desenvolver aplicativos Java EE, consulte os recursos a seguir:

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 notícias .

Para enviar comentários e sugestões, obter suporte a manter-se informado sobre tópicos conectados ao desenvolvimento de aplicativos RCP na plataforma NetBeans, participe da lista de discussão .