Requests e APIs em Python: Como Consumir Dados Externos – Exemplo Prático

Na era dos dados, praticamente tudo que usamos na internet se conecta por meio de APIs.

Quando você acessa a previsão do tempo no celular, busca notícias em tempo real ou até consulta a cotação do dólar, existe uma API fornecendo informações para o aplicativo ou site.

E adivinha? Você também pode consumir essas APIs usando Python.
Neste artigo, vamos aprender:

  1. O que é uma API e como funciona.

  2. Como instalar e usar a biblioteca requests.

  3. Exemplo prático com uma API pública real.

  4. Tratando erros e boas práticas.

  5. Exercício prático para você tentar sozinho.


1. O que é uma API?

API (Application Programming Interface) é uma interface que permite que sistemas diferentes se comuniquem.

  • Ela funciona como um garçom em um restaurante: você faz o pedido (requisição), a cozinha prepara (processamento) e o garçom traz o prato (resposta).

  • No mundo digital, você faz uma requisição HTTP (GETPOST, etc.) e recebe uma resposta geralmente em JSON.

Exemplo de URL de API pública:

https://api.agify.io/?name=thales

👉 Essa API tenta adivinhar a idade média de pessoas com determinado nome.


2. Instalando a biblioteca Requests

requests não vem por padrão no Python. Para instalar:

pip install requests

Depois, basta importar no seu código:

import requests

3. Fazendo sua primeira requisição

Exemplo: consultar dados de previsão do tempo usando a API pública OpenWeatherMap (precisa de cadastro gratuito).

import requests

# URL da API (exemplo: clima em São Paulo)
url = "https://api.open-meteo.com/v1/forecast?latitude=-23.55&longitude=-46.63&hourly=temperature_2m"

# Fazendo a requisição
resposta = requests.get(url)

# Mostrando o status da resposta
print("Status:", resposta.status_code)

# Convertendo a resposta para JSON
dados = resposta.json()

# Exibindo parte dos dados
print(dados["hourly"]["temperature_2m"][:10])  # primeiras 10 temperaturas

Explicação

  • requests.get(url) → envia uma requisição HTTP GET.

  • resposta.status_code → código de retorno (200 = sucesso, 404 = não encontrado).

  • resposta.json() → converte o retorno em dicionário Python.

  • No exemplo, mostramos apenas as 10 primeiras temperaturas previstas.


4. Exemplo prático com API pública de gatos 🐱

Uma API divertida é a The Cat API, que retorna imagens aleatórias de gatos.

import requests

url = "https://api.thecatapi.com/v1/images/search"

resposta = requests.get(url)

if resposta.status_code == 200:
    dados = resposta.json()
    print("Imagem de gato:", dados[0]["url"])
else:
    print("Erro:", resposta.status_code)

👉 Ao rodar esse código, você recebe uma URL de imagem. Basta abrir no navegador e ver o gato 🐾.


5. Tratando erros e boas práticas

Ao trabalhar com APIs, nem sempre a resposta é perfeita. Algumas boas práticas:

try:
    resposta = requests.get(url, timeout=5)  # tempo limite de 5 segundos
    resposta.raise_for_status()  # lança erro se não for 200
    dados = resposta.json()
    print(dados)
except requests.exceptions.Timeout:
    print("⏳ A requisição demorou demais.")
except requests.exceptions.HTTPError as e:
    print("Erro HTTP:", e)
except Exception as e:
    print("Erro inesperado:", e)
  • Sempre defina timeout para evitar travamentos.

  • Use raise_for_status() para capturar erros HTTP.

  • Trate exceções para evitar que o programa quebre.


6. Exercício para praticar

👉 Crie um programa em Python que:

  1. Use a API pública https://api.agify.io/?name=seunome.

  2. Pergunte ao usuário um nome.

  3. Mostre a idade média estimada para esse nome.

Dica: o retorno da API vem em JSON, algo como:

{"name":"thales","age":42,"count":12345}

7. Conclusão

  • A biblioteca requests é uma das formas mais simples de trabalhar com APIs em Python.

  • APIs públicas são ótimas para praticar (clima, gatos, nomes, piadas, moedas, etc).

  • Saber consumir dados externos é essencial para quem quer trabalhar com ciência de dados, automação ou desenvolvimento web.

Comentários

Postagens mais visitadas deste blog

Laços de Repetição em Python: Conceitos e Exemplos Práticos

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Como Instalar o Xamarin com C#: Passo a Passo Completo