Servindo JSON (construindo uma API)
Faça seu server falar a língua da web
⏱ Estim. ~7 min
01 · Ler
Até agora, suas routes responderam com texto puro usando res.send(). Funciona para mensagens simples, mas APIs de verdade não respondem com texto puro — elas respondem com JSON.
Lembra do JSON do Level 5? É o formato universal de dados na web. Quando seu celular consulta o clima, quando um site carrega seu perfil, quando um app busca posts novos — todos esses dados são transmitidos em JSON.
O Express deixa isso super fácil. Em vez de res.send(), você usa res.json() e passa um objeto JavaScript. O Express converte automaticamente para JSON e adiciona os headers corretos para que navegadores e apps saibam como ler.
Pontos-chave
- res.send() responde com texto puro
- res.json() responde com dados JSON — o padrão de APIs
- O Express trata automaticamente a conversão de objeto JavaScript para JSON
- É como toda API que você já usou funciona por trás dos panos
02 · Prática real
Adicione uma route JSON nova ao seu app.js. Essa route retorna a hora e a data atuais como dados estruturados. Coloque junto com suas outras routes (antes do app.listen()).
app.get('/api/time', (req, res) => {
res.json({
time: new Date().toLocaleTimeString(),
date: new Date().toLocaleDateString()
});
});03 · Quiz
Qual é a diferença entre res.send() e res.json()?
- res.send() é mais rápido do que res.json()
- res.json() só funciona com arrays
- Não tem diferença
- res.send() responde com texto puro, e res.json() responde com dados JSON estruturados
04 · Prática real
Pare o server com Ctrl+C e reinicie, depois acesse a route nova no navegador. Você deve ver dados JSON com a hora e a data atuais — não texto puro, mas dados estruturados com chaves e pares chave-valor.
node app.js
http://localhost:3000/api/time
05 · Preencher
Para responder com dados JSON no Express, use res._____() em vez de res.send().
06 · Ler
Seu server agora fala JSON — a mesma língua de toda API na web.
Atualize a página algumas vezes. Reparou que a hora muda a cada requisição? Isso acontece porque seu server roda o código de novo cada vez que alguém acessa a URL. Ele é dinâmico — gera a resposta com base no momento atual.
Essa é a diferença entre sites estáticos (em que o conteúdo é o mesmo a cada vez) e APIs (em que o conteúdo muda dependendo de dados, hora, usuário ou qualquer coisa).
Lembra das APIs e do JSON do Level 5? Agora você está do outro lado dessa conversa. Você não está só usando APIs — está construindo uma.
07 · Quiz
Por que o endpoint /api/time responde com uma hora diferente cada vez que você atualiza?
- O server roda new Date() em cada requisição, então sempre responde com a hora atual
- O navegador está com cache de versões diferentes da página
- O Express gera timestamps aleatórios para cada resposta
- O formato JSON atualiza timestamps automaticamente
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.