Usando APIs externas
Buscar dados de outros serviços no seu app
⏱ Estim. ~5 min
01 · Ler
A maior parte dos apps reais não existe de forma isolada. Eles conversam com outros serviços para buscar dados: um app de clima chama uma API de clima, um app social chama uma API de autenticação, um app de e-commerce chama uma API de pagamento.
API (Application Programming Interface) é só uma URL que retorna dados em vez de uma página web. Quando você visita um site, o navegador recebe HTML. Quando o seu programa chama uma API, ele recebe JSON — dados estruturados que o programa consegue usar.
Você aprendeu sobre APIs no Nível 5. Agora vamos usá-las em código real.
💡 Imagine assimSe o seu servidor é a cozinha de um restaurante, as APIs externas são os fornecedores. Você não planta seus próprios tomates — você liga para o fornecedor (API), faz o pedido (request) e ele entrega (response). Se o fornecedor fecha (API caiu), você precisa de um plano B (tratamento de erros).
02 · Exemplo de código
Aqui está uma rota que busca dados de uma API externa. Leia com atenção e repare em três padrões-chave: async/await, fetch e try/catch.
Exemplo: rota de API
app.get('/api/joke', async (req, res) => {
try {
const response = await fetch('https://official-joke-api.appspot.com/random_joke');
const joke = await response.json();
res.json({
setup: joke.setup,
punchline: joke.punchline
});
} catch (error) {
res.status(500).json({ error: 'Failed to fetch joke' });
}
});
Repare em três coisas: (1) async/await te deixa esperar por dados externos sem congelar o servidor. A palavra-chave 'await' pausa essa função até os dados chegarem, mas outras requisições continuam sendo processadas. (2) fetch envia uma requisição HTTP para a API externa. (3) try/catch trata erros de forma elegante — se a API de piadas cair, seu servidor ainda responde com uma mensagem de erro útil em vez de crashar.
03 · Ler
Ao usar APIs externas, alguns conceitos aparecem o tempo todo. Entender isso vai te poupar erros comuns.
Pontos-chave
- async/await — a forma de esperar por dados externos sem bloquear o servidor
- Chave de API — autenticação para APIs pagas ou privadas (coloque no .env!)
- Rate limit — a API limita quantos requests você pode fazer por minuto
- Tratamento de erros — sempre tenha um fallback para quando a API cair
04 · Prática real
Tente adicionar essa rota de API ao seu servidor Express do Nível 7. Ela chama uma API gratuita de piadas que não precisa de chave de API — perfeito para praticar.
// Add this to your app.js
app.get('/api/joke', async (req, res) => {
try {
const response = await fetch('https://official-joke-api.appspot.com/random_joke');
const joke = await response.json();
res.json({ setup: joke.setup, punchline: joke.punchline });
} catch (error) {
res.status(500).json({ error: 'Failed to fetch joke' });
}
});05 · Preencher
Para tratar erros de API em JavaScript, envolva a chamada de fetch em um bloco _____ /catch.
06 · Quiz
Por que envolver chamadas de API em um bloco try/catch?
- Todas as funções em JavaScript precisam de try/catch
- Para fazer o código rodar mais rápido
- Para impedir que a API seja chamada com muita frequência
- Para tratar erros de forma elegante quando a API falhar
Outras lições deste capítulo
⚠ A experiência interativa completa precisa de JavaScript. Ative-o e recarregue a página.
※ Este é um projeto educacional independente — não é um produto oficial da Anthropic. Claude™ é uma marca registrada da Anthropic, PBC.