Capítulo 16: Consumo de APIs 🌌🛰️
Neste capítulo, vamos aprender a conectar nosso programa à internet para buscar dados de outros sistemas usando as APIs, com o tema The Mandalorian (Star Wars)!
📖 O que é uma API?
API (Application Programming Interface) é uma forma de dois sistemas conversarem. No nosso caso, o Python vai pedir dados para um servidor na internet (via requisição HTTP) e receber uma resposta, geralmente no formato JSON.
Para facilitar, vamos usar a biblioteca requests.
📖 Exemplo Guiado: Rastreando Recompensas
Vamos simular a busca por dados de um alvo da guilda de caçadores de recompensa usando uma API pública (usaremos a PokeAPI como exemplo técnico, mas tematizada no texto).
- Crie o arquivo
requirements.txtna pastacodigos/cap16/com o conteúdo:
requests(Lembre-se de instalar rodando pip install -r requirements.txt no terminal)
- Crie o arquivo
rastreador.pyna pastasrc/:
import requests
# URL da API (usando a PokeAPI como exemplo)
url = "https://pokeapi.co/api/v2/pokemon/pikachu"
print("📡 Conectando ao holocron da guilda...")
resposta = requests.get(url)
if resposta.status_code == 200:
dados = resposta.json()
print("🎯 Alvo localizado!")
print("Nome do Alvo:", dados["name"].capitalize())
print("Altura do Alvo:", dados["height"])
print("Peso do Alvo:", dados["weight"])
else:
print("🚨 Erro ao acessar a rede da guilda.")🕹️ Como Executar e Testar no VS Code
- Abra o terminal e instale a biblioteca:
pip install requests. - Abra o arquivo
rastreador.py. - Clique no botão Run Python File.
Resultado Esperado:
📡 Conectando ao holocron da guilda...
🎯 Alvo localizado!
Nome do Alvo: Pikachu
Altura do Alvo: 4
Peso do Alvo: 60📊 Ilustração Visual: Fluxo da API
Veja como funciona a comunicação entre o seu código e o servidor da internet:
graph LR A[💻 Seu Código Python] -->|1. Requisição HTTP GET| B[🌐 Servidor da API] B -->|2. Processa o pedido| B B -->|3. Resposta com dados JSON| A
🛠️ Prática Obrigatória 1: Buscando Outro Alvo
Crie um programa chamado busca_alvo.py que peça ao usuário para digitar o nome de um pokémon (alvo) e faça a busca na API usando a URL https://pokeapi.co/api/v2/pokemon/{nome}. Exiba o nome e a experiência base (base_experience).
🔑 Gabarito de Código
Prática 1: busca_alvo.py
import requests
alvo = input("Digite o nome do alvo para busca: ").lower()
url = f"https://pokeapi.co/api/v2/pokemon/{alvo}"
print(f"📡 Buscando dados de {alvo}...")
resposta = requests.get(url)
if resposta.status_code == 200:
dados = resposta.json()
print("🎯 Dados recuperados!")
print("Nome:", dados["name"].capitalize())
print("XP Base:", dados["base_experience"])
else:
print("🚨 Alvo não encontrado ou erro na rede.")📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o mesmo padrão do Capítulo 01)