Introdução: por que uma API REST em JavaScript em 30 minutos?
\nO desenvolvimento web moderno é impensável sem APIs (Interface de Programação de Aplicações). REST (Transferência de Estado Representacional) é o estilo arquitetônico mais popular para criar serviços web. Se você quer aprender rapidamente desenvolvimento backend ou iniciar seu primeiro servidor, JavaScript e Node.js são a escolha ideal. Em 30 minutos, você poderá criar uma API REST completa que processará requisições, retornará dados em formato JSON e trabalhará com um banco de dados (no nosso exemplo, com um array simples na memória).
\nNeste artigo, vamos analisar um exemplo prático: criaremos uma API para gerenciar uma lista de tarefas (To-Do list). Você aprenderá a configurar o servidor, processar requisições GET, POST, PUT e DELETE, além de adicionar validação básica. Ao final da leitura, você terá um código pronto que pode ser executado e testado imediatamente.
\n\nPasso 1: Configuração do projeto e instalação das dependências
\nAntes de escrever o código, é necessário preparar o ambiente. Certifique-se de ter o Node.js instalado (pode baixá-lo do site oficial). Em seguida, siga as instruções:
\n- \n
- Crie uma nova pasta para o projeto, por exemplo
rest-api-todo. \n - Abra o terminal nesta pasta e execute o comando
npm init -y— isso criará o arquivopackage.json. \n - Instale o Express — o framework mais popular para Node.js:
npm install express. \n - Para maior comodidade, instale o
nodemoncomo dependência de desenvolvimento:npm install --save-dev nodemon. Ele reiniciará automaticamente o servidor quando houver alterações no código. \n
Após a instalação, adicione o script de inicialização no package.json:
"scripts": {\n "start": "node index.js",\n "dev": "nodemon index.js"\n}\n\nPasso 2: Criação do servidor básico com Express
\nAgora, vamos criar o arquivo index.js — este será o ponto de entrada da nossa aplicação. Nele, configuraremos o servidor, conectaremos o middleware para trabalhar com JSON e definiremos a primeira rota.
const express = require('express');\nconst app = express();\nconst PORT = 3000;\n\n// Middleware para parsing de JSON\napp.use(express.json());\n\n// Armazenamento temporário de dados (em vez de banco de dados)\nlet tasks = [\n { id: 1, title: 'Estudar Express', completed: false },\n { id: 2, title: 'Escrever API REST', completed: false }\n];\nlet currentId = 3;\n\n// Rota básica para verificação\napp.get('/', (req, res) => {\n res.send('API REST funcionando! Use /api/tasks');\n});\n\n// Inicialização do servidor\napp.listen(PORT, () => {\n console.log(`Servidor rodando em http://localhost:${PORT}`);\n});\nExecute o servidor com o comando npm run dev e abra no navegador http://localhost:3000. Você deverá ver a mensagem "API REST funcionando!".
Passo 3: Implementação das operações CRUD (GET, POST, PUT, DELETE)
\nAgora, a parte mais interessante — criaremos uma API REST completa para gerenciar tarefas. Implementaremos quatro métodos HTTP principais:
\n\n3.1. GET /api/tasks — obter todas as tarefas
\n// Obter todas as tarefas\napp.get('/api/tasks', (req, res) => {\n res.json(tasks);\n});\n\n3.2. GET /api/tasks/:id — obter uma tarefa pelo ID
\n// Obter tarefa pelo ID\napp.get('/api/tasks/:id', (req, res) => {\n const id = parseInt(req.params.id);\n const task = tasks.find(t => t.id === id);\n \n if (!task) {\n return res.status(404).json({ message: 'Tarefa não encontrada' });\n }\n res.json(task);\n});\n\n3.3. POST /api/tasks — criar uma nova tarefa
\n// Criar nova tarefa\napp.post('/api/tasks', (req, res) => {\n const { title, completed } = req.body;\n \n // Validação\n if (!title || typeof title !== 'string') {\n return res.status(400).json({ message: 'O título da tarefa é obrigatório e deve ser uma string' });