Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 13 – API JavaScript, Node.js e Express – Browser Developer Tools – Network tab, debugger

Imagem destacada da aula de API

Introdução (3 min)

Imagine um mecânico consertando um carro. Ele não pode simplesmente “chutar” onde está o problema. Ele precisa de ferramentas de diagnóstico, como um scanner OBD-II, para entender o que está acontecendo “por baixo do capô”. As ferramentas de desenvolvedor do navegador, especificamente a aba Network e o Debugger, são o seu “scanner OBD-II” para as suas APIs.

Dominar essas ferramentas é absolutamente essencial para o desenvolvimento de APIs modernas, pois permite inspecionar, depurar e otimizar a comunicação entre o cliente (navegador) e o servidor.

Nesta aula, construiremos um pequeno servidor Express com uma rota simples e usaremos as ferramentas de desenvolvedor do navegador para analisar as requisições e respostas, assim como depurar o código do lado do servidor.

No contexto Node.js/Express, essas ferramentas permitem visualizar o tráfego HTTP, os tempos de resposta, os cabeçalhos, os dados (payloads) e muito mais. Isso viabiliza a identificação rápida de gargalos, erros e problemas de performance.

Conceito Fundamental (7 min)

A aba Network das ferramentas de desenvolvedor exibe todas as requisições feitas pelo navegador, oferecendo uma visão detalhada do tráfego HTTP. Já o Debugger, tanto no navegador quanto em ambientes Node.js como o VS Code, permite pausar a execução do código, inspecionar variáveis e entender o fluxo de execução passo a passo.

Termos relevantes incluem: requisição, resposta, cabeçalhos, código de status, método HTTP (GET, POST, PUT, DELETE), payload, breakpoint, debugging.

Em produção, essas ferramentas são vitais para diagnosticar problemas de performance, rastrear erros e monitorar a saúde da API. Imagine um site de e-commerce com problemas de checkout. Usando a aba Network, um desenvolvedor pode identificar rapidamente se a requisição para processar o pagamento está falhando ou demorando muito.

Essas ferramentas se integram perfeitamente com outras tecnologias front-end e back-end. Por exemplo, você pode usar o Debugger para analisar o código JavaScript do seu front-end que interage com a API e, simultaneamente, usar a aba Network para inspecionar as requisições e respostas da sua API construída com Express.

As vantagens incluem: diagnóstico preciso de problemas, otimização de performance e melhor entendimento do fluxo de dados. A principal desvantagem é a curva de aprendizado inicial, mas o investimento de tempo é rapidamente recompensado.

Implementação Prática (10 min)

// server.js
const express = require('express');
const app = express();
const port = 3000;

// Middleware para logs (prática recomendada em produção) app.use((req, res, next) => { console.log(${req.method} ${req.url}); next(); });

app.get('/hello', (req, res) => { // Simulando um pequeno delay para visualizar na aba Network setTimeout(() => { const message = { mensagem: 'Olá, mundo!' }; res.json(message); // Enviando um JSON como resposta }, 500); });

// Error handling básico app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Algo deu errado!'); });

app.listen(port, () => { console.log(Servidor rodando em http://localhost:${port}); });


Para iniciar o servidor:

📚 Informações da Aula

Curso: API Completo - Node.js & Express

Tempo estimado: 25 minutos

Pré-requisitos: JavaScript básico

node server.js

Abra seu navegador em http://localhost:3000/hello e inspecione a aba Network. Você verá a requisição GET para /hello, o código de status 200, o tempo de resposta e os dados da resposta (o JSON).

No VS Code, adicione um breakpoint na linha res.json(message);, execute o servidor em modo debug e faça a requisição novamente. O debugger irá pausar a execução, permitindo que você inspecione as variáveis.

Exercício Hands-On (5 min)

Crie uma nova rota /usuario que retorne um JSON com dados de um usuário (nome, idade, cidade). Observe a requisição e a resposta na aba Network.

Solução:

app.get('/usuario', (req, res) => {
  const usuario = {
    nome: 'João Silva',
    idade: 30,
    cidade: 'São Paulo'
  };
  res.json(usuario);
});

Teste acessando http://localhost:3000/usuario no seu navegador e verifique os dados na aba Network.

Para solucionar erros comuns, verifique o console do navegador e do servidor. Certifique-se de que o servidor está rodando e que a URL está correta. Próximos passos: explore outros recursos da aba Network, como os cabeçalhos e o timing, e pratique o uso do Debugger em cenários mais complexos.

🚀 Pronto para a próxima aula?

Continue sua jornada no desenvolvimento de APIs e domine Node.js & Express!

📚 Ver todas as aulas