0Pricing
Learn AI with Python · Aula

Fundamentos de APIs REST para coleta de dados

HTTP GET/POST, cabeçalhos, autenticação (chave de API, Bearer) e análise de JSON com requests.

Fundamentos de APIs REST para coleta de dados é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Por que as APIs são importantes para a IA

Os modelos só são tão bons quanto os dados usados. As APIs da web permitem coletar dados atuais e estruturados sob demanda — clima, preços, publicações em redes sociais e conjuntos de dados públicos — em vez de depender de um único arquivo estático.

Este curso usa Python e a popular biblioteca requests para buscar e armazenar esses dados.

O que é uma API REST?

Uma API REST expõe recursos por HTTP. Você envia uma solicitação para uma URL (endpoint) e recebe dados, geralmente no formato JSON.

Os principais métodos HTTP:

  • GET — ler dados
  • POST — criar dados
  • PUT/PATCH — atualizar
  • DELETE — remover

Para coletar dados, você usará principalmente GET.

Uma primeira solicitação GET

requests.get(url) envia uma solicitação GET e retorna um objeto de resposta. A resposta contém o estado, os cabeçalhos e o corpo.

import requests

resp = requests.get("https://api.example.com/users")
print(resp.status_code)   # 200
print(resp.text[:200])    # raw body as a string

Verificando response.status_code

O código de estado informa se a solicitação foi bem-sucedida:

  • 200 OK
  • 301/302 redirecionamento
  • 400 solicitação inválida
  • 401/403 problema de autenticação
  • 404 não encontrado
  • 429 limite de requisições atingido
  • 500 erro do servidor
resp = requests.get(url)
if resp.status_code == 200:
    print("Success")
else:
    print("Failed:", resp.status_code)

Analisando JSON com response.json()

A maioria das APIs retorna JSON. response.json() analisa automaticamente o corpo e o transforma em dicionários e listas Python.

Não analise JSON manualmente — .json() cuida disso e gera um erro claro se o corpo não contiver JSON válido.

resp = requests.get("https://api.example.com/users/1")
data = resp.json()
print(data["name"])
print(data["email"])

Enviando parâmetros de consulta com params

Filtre e configure as solicitações usando parâmetros de consulta. Passe um dicionário para params e requests constrói a URL para você, cuidando da codificação.

O exemplo se torna ?city=London&units=metric na URL.

params = {"city": "London", "units": "metric"}
resp = requests.get("https://api.example.com/weather", params=params)
print(resp.url)
print(resp.json())

Enviando cabeçalhos

Os cabeçalhos transportam metadados, como o tipo de conteúdo, um agente de usuário ou uma chave/token de API. Passe-os como um dicionário para headers.

Muitas APIs exigem um cabeçalho Authorization para permitir o acesso.

headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "User-Agent": "my-data-collector/1.0",
}
resp = requests.get("https://api.example.com/data", headers=headers)
print(resp.json())

raise_for_status() para um código robusto

Em vez de verificar os códigos manualmente, chame resp.raise_for_status(). Ele gera um HTTPError para qualquer resposta 4xx ou 5xx, fazendo com que as falhas sejam sinalizadas imediatamente.

Coloque-o em um bloco try/except para tratar os erros de forma adequada.

import requests

try:
    resp = requests.get(url, timeout=10)
    resp.raise_for_status()
    data = resp.json()
except requests.HTTPError as e:
    print("HTTP error:", e)
except requests.RequestException as e:
    print("Network error:", e)

Defina sempre um tempo limite

Sem um timeout, um servidor travado pode deixar seu script esperando indefinidamente. Sempre forneça um valor (em segundos).

Em laços de coleta de dados que acessam milhares de endpoints, a ausência de um tempo limite é uma causa comum de tarefas congeladas.

resp = requests.get(url, timeout=10)   # give up after 10 seconds

Reutilizando conexões com Session

Uma requests.Session reutiliza a conexão TCP subjacente entre as solicitações e permite definir os cabeçalhos uma única vez. Para muitas chamadas ao mesmo host, isso é muito mais rápido.

import requests

session = requests.Session()
session.headers.update({"Authorization": "Bearer YOUR_TOKEN"})

for uid in [1, 2, 3]:
    resp = session.get(f"https://api.example.com/users/{uid}")
    print(resp.json()["name"])

session.close()

Um auxiliar de busca organizado

Transforme o padrão em uma função reutilizável: defina uma sessão, aplique um tempo limite, gere uma exceção em caso de erros e retorne o JSON analisado.

Você usará esse auxiliar como base nas próximas lições, sobre paginação e armazenamento.

def fetch_json(session, url, params=None):
    resp = session.get(url, params=params, timeout=10)
    resp.raise_for_status()
    return resp.json()

Verificação rápida: solicitações robustas

Você quer que seu código gere automaticamente uma exceção ao receber uma resposta 404 ou 500.

Recapitulação: fundamentos de APIs REST

Agora você consegue coletar dados por HTTP:

  • requests.get(url, params=..., headers=...) para fazer solicitações
  • response.status_code e raise_for_status() para detectar falhas
  • response.json() para analisar o corpo
  • timeout para evitar esperas indefinidas
  • requests.Session para reutilizar conexões e cabeçalhos

A seguir: coletando conjuntos de dados que abrangem muitas páginas.

Perguntas Frequentes

A aula “Fundamentos de APIs REST para coleta de dados” é grátis?

Sim — o texto completo de “Fundamentos de APIs REST para coleta de dados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Fundamentos de APIs REST para coleta de dados”?

HTTP GET/POST, cabeçalhos, autenticação (chave de API, Bearer) e análise de JSON com requests. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Fundamentos de APIs REST para coleta de dados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de APIs REST para coleta de dados
  2. Paginação e coleta de grandes conjuntos de dados
  3. Armazenando dados coletados com eficiência
  4. Trabalhando com APIs de dados públicos
← Voltar para Learn AI with Python