Portal do Governo Brasileiro
Copa 2014 - Transparência em 1º lugar Logotipo Portal da Transparência Logotipo Copa 2014 - Transparência em 1º lugar

Web services

Para consultar os dados do site Copa 2014 - Transparência em 1° lugar estão disponíveis dois web services que podem ser consultados por qualquer cidadão. Os serviços podem ser acessados usando-se tanto REST (Representational state transfer) quanto SOAP/WSDL (Simple Object Access Protocol / Web Services Description Language).

Como fazer uso dos Web Services utilizando-se REST?

O serviço REST está disponível a partir da URL http://www.portaltransparencia.gov.br/copa2014/api/rest/. Com esta URL podem ser consultados todos os dados do site. Para cada tipo de dado do site existe um recurso disponível no serviço. Para consultar os empreendimentos disponíveis, basta acessar a URL http://www.portaltransparencia.gov.br/copa2014/api/rest/empreendimento. As URLs também podem ser utilizadas para filtrar os recursos. Para filtrar um empreendimento, por exemplo, pode ser utilizada a URL http://www.portaltransparencia.gov.br/copa2014/api/rest/empreendimento/143. Esta URL retornará as informações do empreendimento 143 - Via 710 (Andradas / Cristiano Machado)

O serviço REST pode ser consumido por uma aplicação Java. Para exemplificar, utilizaremos a IDE Eclipse Kepler para implementar um cliente Java que consuma o serviço. O Eclipse pode ser obtido no endereço http://www.eclipse.org/downloads/.

Já com o Eclipse instalado, deve-se criar um projeto utilizando a opção File > New > Project....

Criando novo projeto no Eclipse

Figura 1 - Criando novo projeto no Eclipse.

Na janela New Project, escolha a opção Java Project e clique em Next >.

Criando um projeto java

Figura 2 - Criando um projeto Java.

Na próxima página, digite o nome do projeto em Project name: e clique em Finish para que o projeto seja criado.

Configurando um projeto java

Figura 3 - Configurando um projeto Java.

O próximo passo é a inclusão das bibliotecas necessárias para a compilação e execução do cliente Java. Segue abaixo a lista de bibliotecas utilizadas e os links de onde obtê-las.

Para incluir as bibliotecas no projeto, clique com o botão direito do mouse no nome do projeto ou na área livre próximo ao projeto e selecione Build Path > Configure Build Path....

Incluindo bibliotecas no projeto

Figura 4 - Incluindo bibliotecas no projeto.

Na janela que se abre, clique em Add External JARs... e selecione todas as bibliotecas da listagem acima. Após selecioná-las, clique em OK.

Selecionando bibliotecas

Figura 5 - Selecionando bibliotecas.

O passo seguinte é criar a classe que consumirá o serviço REST. Para criar uma classe no Eclipse, clique com o botão direito do mouse em sobre a pasta src e selecione New > Class.

Incluindo nova classe

Figura 6 - Incluindo nova classe.

Na janela que se abre, digite o nome do pacote, nome da classe e clique em Finish.

Configurando a classe

Figura 7 - Configurando a classe.

Agora, devemos implementar o código que consome o serviço REST. O código da listagem abaixo retorna o recurso UF com identificador igual a 1, ou seja, retorna um XML (eXtensible Markup Language) contendo as informações dessa unidade da federação semelhante ao que pode ser obtido na URL http://www.portaldatransparencia.gov.br/copa2014/api/rest/uf/1.

package rest.cliente;

import javax.ws.rs.client.Client;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.ClientFactory;

public class ClienteREST {
     
    public static void main(String[] args) {
            
        Client client = ClientFactory.newClient();           
           String xml = client.target("http://www.portaldatransparencia.gov.br/copa2014/api/rest/uf/1")
                           .request(MediaType.APPLICATION_XML).get(String.class);
           
           System.out.println(xml);
    }
}

Essa é uma versão simplificada de um cliente Java que consome o serviço REST. Para um uso mais avançado de modo a obter mais proveito do serviço, pode ser utilizado o JAXB (Java Architecture for XML Binding) ou alguma implementação semelhante. Utilizando a arquitetura JAXB é possível transformar o XML retornado em objetos Java e com esses objetos desenvolver qualquer tipo de aplicação.

Como fazer uso dos Web Services utilizando-se SOAP/WSDL?

O serviço SOAP está disponível a partir da URL http://www.portaldatransparencia.gov.br/copa2014/api/soap. Esta interface responde à requisições SOAP e, diferentemente da interface REST, ela não pode ser acessada utilizando-se o navegador Web. Para consumir esse serviço é possível implementar um cliente Java que o consuma.

Utilizando-se o Eclipse, deve-se criar um projeto do tipo Dynamic Web Project. Para tal, deve-se clicar em File > New > Dynamic Web Project.

Criando um Dynamic Web Project

Figura 8 - Criando um Dynamic Web Project.

Na janela New Dynamic Web Project, digite o nome do projeto em Project name: e clique em Finish para que o projeto seja criado.

Configurando um Dynamic Web Project

Figura 9 - Configurando um Dynamic Web Project.

O passo seguinte é utilizar o WSDL disponível no endereço http://www.portaldatransparencia.gov.br/copa2014/api/soap?wsdl, para criar automaticamente as classes necessárias para o desenvolvimento da aplicação. A ferramenta wsimport, disponível junto com a instalação da JDK, pode ser utilizada para esse fim.

Para gerar as classes, acesse a pasta src (criada pelo Eclipse durante criação do projeto) com o Prompt de Comando do Windows. No prompt de comando, digite wsimport -keep -verbose http://www.portaldatransparencia.gov.br/copa2014/api/soap?wsdl. Após alguns segundos, as classes estarão todas na pasta indicada. Agora no Eclipse pressione a tecla F5 para atualizar o conteúdo da pasta src (ela apresentará todas as classes geradas).

Utilizando o wsimport

Figura 10 - Utilizando o wsimport.

Classes geradas pelo wsimport

Figura 11 - Classes geradas pelo wsimport.

O passo seguinte é criar a classe que consumirá o serviço SOAP. O código da listagem abaixo implementa uma classe que pesquisa no serviço todas os temas dos empreendimentos da Copa e imprime-os no console

package br.gov.portaltransparencia.copa2014;

import java.util.List;

public class ClienteSOAP {

    public static void main(String[] args) {
        
        Copa2014SoapService service = new Copa2014SoapService();
        Copa2014Soap copa2014Soap = service.getCopa2014SoapPort();
                
        List>Tema< temas = copa2014Soap.getListaTema(null);
        
        if (temas != null) {
            for (Tema tema : temas) {
                System.out.println(tema.getDescricao());
            }
        }
    }
}

Esse é apenas um exemplo de uma aplicação simplificada que consome o serviço SOAP, aplicações mais sofisticadas podem ser desenvolvidas a partir dessa implementação.

Imagem de bola de futebol