url_base <- "https://brasilapi.com.br/api"
endpoint <- "/cep/v1/"
query_parameters <- "01310100"
u_brasilapi <- paste0(url_base, endpoint, query_parameters)
u_brasilapi[1] "https://brasilapi.com.br/api/cep/v1/01310100"
Conhecendo API’s
outubro de 2024
Application Programming Interface.
É uma forma unificada para acessar dados de uma plataforma, a partir de qualquer linguagem de programação.
Facilita a vida da pessoa que programa.
Geralmente vem acompanhada de documentação.
Reduz o volume na transferência de dados
httr ou httr2.APIs disponíveis/documentadas: O site fornece uma forma estruturada e documentada para acessar as páginas (com ou sem necessidade de fazer login).
APIs escondidas: O site não fornece uma forma estruturada e documentada para acessar as páginas, mas internamente é alimentado por uma API não documentada, que podemos descobrir e usar.
GET: Requisição para obter dados.
POST: Requisição que permite envio de dados (ex. parâmetros para autenticação).
url_base <- "https://brasilapi.com.br/api"
endpoint <- "/cep/v1/"
query_parameters <- "01310100"
u_brasilapi <- paste0(url_base, endpoint, query_parameters)
u_brasilapi[1] "https://brasilapi.com.br/api/cep/v1/01310100"
Response [https://brasilapi.com.br/api/cep/v1/01310100]
Date: 2024-10-20 20:31
Status: 200
Content-Type: application/json; charset=utf-8
Size: 128 B
200 OK
302 Redirecionado
400 Requisição mal formatada
401 Não autorizado
404 Não encontrado
503 Erro no servidor
scripts/01-api-documentada.RUma API “escondida” é uma API que não é documentada, mas que é usada internamente por um site.
Neste caso, podemos descobrir sua existência explorando.
Técnicas mais importantes:
Inspecionar elemento
Aba Network
scripts/02-api-escondida.Rquery=body=A autenticação é usada tanto em APIs quanto sites.
Geralmente acontece através de um parâmetro em uma requisição POST.
A requisição pode aparecer no body ou nos headers.
Se a API for documentada, as informações de autenticação estarão lá.
scripts/03-api-autenticacao.R
Slides por Beatriz Milz, feitos com Quarto. Códigos e materiais disponíveis no GitHub. Licença de uso: CC-BY-SA.