8 Como usar a API REST
A API Rest é outra forma de acessar os dados do CepespData e pode ser utilizada em diferentes softwares ou programas.
Aqui vamos mostrar como fazer a requisição usando apenas o navegador, o web browser, e usando o R.
8.1 Estrutura das resquisições
A estrutura da consulta no browser é:
cepesp.io/api/consulta/athena/query?table=<TABELA>&<ARGUMENTOS>
O argumento table
indica qual é a base de dados que se deseja acessar: tse
(banco Resultado de eleições por cargo), candidatos
(banco Perfil de candidatos), legendas
(Coligações), votos
(banco de Votos), bem_candidato
(Bens de candidatos), secretarios
(Secretários) ou filiados
(Filiados).
Os demais argumentos (<ARGUMENTOS>
acima) possíveis são:
Argumentos | Bases de dados que suportam este argumento |
---|---|
anos | tse, candidatos, legendas, votos, bem_candidato |
cargo | tse, candidatos, legendas, votos |
agregacao_regional | tse, votos |
agregacao_politica | tse |
uf_filter | tse, votos, bem_candidato, filiados |
mun_filter | tse, votos |
only_elected | tse, candidatos |
brancos | tse, votos |
nulos | tse, votos |
name_filter | secretarios |
goverment_period | secretarios |
party | filiados |
Além disso, caso as colunas desejadas não estajam na lista de colunas-padrão da consulta de determinado banco, é possível selecionar colunas acrescentando o texto &c[]=<COLUNA>
ao final do link de requisição, e/ou filtrar colunas, acrescentando o texto &filters[<COLUNA>]=<VALOR>
. Atenção: garanta que a coluna a ser filtrada foi devidamente selecionada.
Por exemplo, para filtrar candidatos(as) à Presidência em 2018 que se declaram pretos(as), utilizamos o seguinte link:
cepesp.io/api/consulta/athena/query?table=candidatos&anos=2014&cargo=1&c[]=ANO_ELEICAO&c[]=NUM_TURNO&c[]=SIGLA_UE&c[]=DESCRICAO_CARGO&c[]=SIGLA_PARTIDO&c[]=NUMERO_CANDIDATO&c[]=CPF_CANDIDATO&c[]=NOME_URNA_CANDIDATO&c[]=DESCRICAO_SEXO&c[]=DESCRICAO_COR_RACA&c[]=DESC_SIT_TOT_TURNO&filters[DESCRICAO_COR_RACA]=PRETA
É possível acessar a lista de colunas disponíveis para cada banco de dados no nosso dicionário de variáveis ou no nosso GitHub.
8.1.2 API Rest no R
Utilizar a API Rest no R permite importar dados de forma mais automática e estruturada, diretamente para o ambiente R, onde eles podem ser manipulados de acordo com seu interesse.
Para usar a API Rest por meio do R, você vai precisar instalar os pacotes httr
e jasonlite
.
install.packages("httr")
install.packages("jsonlite")
Em seguida, vamos requerir a utilização dos pacotes:
require("httr")
require("jsonlite")
E depois fazer a requisição utilizando a estrutura descrita acima em Estrutura das resquisições. Vamos usar um exemplo:
# Definindo link da requisição:
link <- "cepesp.io/api/consulta/athena/query?table=candidatos&anos=2014&cargo=1&c[]=ANO_ELEICAO&c[]=NUM_TURNO&c[]=SIGLA_UE&c[]=DESCRICAO_CARGO&c[]=SIGLA_PARTIDO&c[]=NUMERO_CANDIDATO&c[]=CPF_CANDIDATO&c[]=NOME_URNA_CANDIDATO&c[]=DESCRICAO_SEXO&c[]=DESCRICAO_COR_RACA&c[]=DESC_SIT_TOT_TURNO&filters[DESCRICAO_COR_RACA]=PRETA"
# Fazendo requisição:
call <- httr::GET("cepesp.io/api/consulta/athena/query?table=candidatos&anos=2014&cargo=1&c[]=ANO_ELEICAO&c[]=NUM_TURNO&c[]=SIGLA_UE&c[]=DESCRICAO_CARGO&c[]=SIGLA_PARTIDO&c[]=NUMERO_CANDIDATO&c[]=CPF_CANDIDATO&c[]=NOME_URNA_CANDIDATO&c[]=DESCRICAO_SEXO&c[]=DESCRICAO_COR_RACA&c[]=DESC_SIT_TOT_TURNO&filters[DESCRICAO_COR_RACA]=PRETA")
# Transformando a lista em texto:
call_text <- httr::content(call, 'text')
# Abrindo a nossa lista JSON:
call_json <- fromJSON(call_text, flatten = TRUE)
View(call_json) # Aqui conseguimos acessar o id que contém a nossa requisição, que pode ser acessado no:
call_json$id
# Assim vamos importar o banco desejado inserindo o nosso id na requisição do resultado da consulta:
requis <- httr::GET(paste0('cepesp.io/api/consulta/athena/result?id=',call_json$id,'&ignore_version=true'))
# Transformando a requisição em formato de banco de dados:
requis_df <- httr::content(requis, 'parsed')
Assim, o objeto final requis_df
deve conter o banco de dados desejado, que pode ser manipulado dentro do seu ambiente R e salvo conforme interesse. Veja as seções 3 e 4 deste tutorial para mais detalhes sobre a utilização do R.
Para mais detalhes sobre a API Rest do CepespData/FGV, consulte nossa página no GitHub.