Introdução: REST API em meia hora é real
REST API é a base da interação web moderna. Seja você um desenvolvedor frontend querendo entender o backend, ou um iniciante que deseja criar rapidamente seu primeiro servidor, este guia é para você. Vamos detalhar como escrever uma REST API completa em JavaScript (Node.js) em literalmente 30 minutos.
Usamos uma stack mínima: Node.js e Express.js — o framework mais popular para criar APIs. Nada de código extra, apenas prática. Ao final do artigo, você terá um servidor funcional com operações CRUD (criação, leitura, atualização, exclusão).
Passo 1: Preparação e instalação de dependências
Para começar, certifique-se de ter o Node.js instalado (versão 14 ou superior). Você pode baixá-lo do site oficial. Verifique a instalação:
node -vnpm -vCrie uma pasta para o projeto e entre nela:
mkdir my-rest-apicd my-rest-apiInicialize o projeto e instale o Express:
npm init -ynpm install expressPara maior comodidade, vamos instalar o nodemon — ele reinicia automaticamente o servidor quando houver alterações no código:
npm install --save-dev nodemonAgora, abra o arquivo package.json e substitua a seção "scripts" por:
"scripts": { "start": "node index.js", "dev": "nodemon index.js"}Ótimo! Tudo pronto para escrever o código.
Passo 2: Escrevendo o servidor básico e o primeiro endpoint
Crie o arquivo index.js na raiz do projeto. Vamos começar importando o Express e configurando a porta:
const express = require('express');const app = express();const PORT = 3000;
// Middleware para parsing de JSONapp.use(express.json());
// Endpoint de teste simplesapp.get('/', (req, res) => { res.send('Minha REST API está funcionando!');});
// Iniciar o servidorapp.listen(PORT, () => { console.log(`Servidor rodando em http://localhost:${PORT}`);});Inicie o servidor com o comando:
npm run devAcesse no navegador o endereço http://localhost:3000 — você deverá ver a mensagem "Minha REST API está funcionando!".
Adicionando uma simulação de banco de dados
Para simplificar, vamos armazenar os dados em memória (um array). Em um projeto real, você conectaria um MongoDB ou PostgreSQL, mas para aprendizado isso é suficiente.
// Simulação de banco de dadoslet users = [ { id: 1, name: 'Alexey', email: 'alex@example.com' }, { id: 2, name: 'Maria', email: 'maria@example.com' }];let nextId = 3;Passo 3: Implementação das operações CRUD
Agora vamos criar endpoints completos para trabalhar com usuários. Implementaremos os quatro principais métodos HTTP: GET, POST, PUT, DELETE.
GET — obter todos os usuários
// Obter todos os usuáriosapp.get('/api/users', (req, res) => { res.json(users);});
// Obter um usuário por IDapp.get('/api/users/:id', (req, res) => { const id = parseInt(req.params.id); const user = users.find(u => u.id === id); if (!user) { return res.status(404).json({ message: 'Usuário não encontrado' }); } res.json(user);});POST — criar um novo usuário
// Criar usuárioapp.post('/api/users', (req, res) => { const { name, email } = req.body; // Validação simples if (!name || !email) { return res.status(400).json({ message: 'Nome e email são obrigatórios' }); } const newUser = { id: nextId++, name, email }; users.push(newUser); res.status(201).json(newUser);});PUT — atualizar um usuário
// Atualizar usuárioapp.put('/api/users/:id', (req, res) => { const id = parseInt(req.params.id); const { name, email } = req.bod
```