Introdução: Por que uma REST API em JavaScript é rápida e simples
Criar sua própria REST API é um dos primeiros passos para entender o desenvolvimento backend. Se você já conhece JavaScript, pode escrever a parte do servidor de uma aplicação em literalmente meia hora. Neste artigo, vamos analisar como escrever uma REST API em JavaScript usando Node.js e o framework Express. Criaremos uma API simples para gerenciar uma lista de tarefas (To-Do List) com suporte para operações CRUD padrão: criar, ler, atualizar e deletar dados.
Este guia é ideal para iniciantes que desejam iniciar rapidamente seu primeiro servidor e entender como funcionam requisições, rotas e middleware. Ao final do artigo, você terá uma API funcional que pode ser testada no Postman ou no navegador.
Passo 1: Preparação do ambiente e instalação das dependências
Antes de escrever o código, certifique-se de ter o Node.js instalado (versão 16 ou superior). Caso não tenha, baixe-o do site oficial. Para verificar, execute no terminal:
node -vnpm -vAgora crie uma pasta para o projeto e inicialize-o:
mkdir my-apicd my-apinpm init -yInstale a dependência principal — o framework Express, que simplifica muito o trabalho com HTTP:
npm install expressInstale também o nodemon (opcional) para reinicialização automática do servidor ao alterar o código:
npm install --save-dev nodemonAdicione o script de inicialização no arquivo package.json:
"scripts": { "start": "node index.js", "dev": "nodemon index.js"}Passo 2: Criando o servidor básico e a primeira rota
Crie o arquivo index.js na raiz do projeto. Vamos começar importando o Express e iniciando o servidor na porta 3000:
const express = require('express');const app = express();const PORT = 3000;
// Middleware para parsing de JSONapp.use(express.json());
// Rota de testeapp.get('/', (req, res) => { res.send('Olá, mundo! A API está funcionando.');});
app.listen(PORT, () => { console.log(`Servidor iniciado em http://localhost:${PORT}`);});Inicie o servidor com o comando npm run dev (se estiver usando nodemon) ou node index.js. Abra o navegador e acesse http://localhost:3000 — você deverá ver a mensagem "Olá, mundo! A API está funcionando."
Parabéns! Você acabou de escrever uma REST API em JavaScript. Agora vamos adicionar a lógica real.
Passo 3: Implementação das operações CRUD para a lista de tarefas
Vamos criar um armazenamento temporário de dados na memória (um array de objetos). Em um projeto real, você conectaria um banco de dados, mas para uma lição de 30 minutos isso é suficiente.
let tasks = [ { id: 1, title: 'Estudar Express', completed: false }, { id: 2, title: 'Escrever API', completed: true }];
let nextId = 3;Agora vamos implementar as quatro rotas principais:
GET /tasks — Obter todas as tarefas
app.get('/tasks', (req, res) => { res.json(tasks);});POST /tasks — Criar uma nova tarefa
app.post('/tasks', (req, res) => { const { title } = req.body; if (!title) { return res.status(400).json({ error: 'O título da tarefa é obrigatório' }); } const newTask = { id: nextId++, title, completed: false }; tasks.push(newTask); res.status(201).json(newTask);});PUT /tasks/:id — Atualizar uma tarefa
app.put('/tasks/:id', (req, res) => { const id = parseInt(req.params.id); const { title, completed } = req.body; const task = tasks.find(t => t.id === id); if (!task) { return res.status(404).json({ error: 'Tarefa não encontrada' }); } if (title !== undefined) task.title = title; if (completed !== undefined) task.completed = completed; res.json(task);});DELETE /tasks/:id — Deletar uma tarefa
app.delete('/tasks/:id', (req, res) => { const id = parseInt(req.params.id); const index = tasks.findIndex(t => t.id === id); if (index === -1) { return res.status(404).json({ error: 'Tarefa não encontrada' }); } tasks.splice(index, 1); res.status(204).send();});Passo 4: Testando a API
Reinicie o servidor (se não estiver usando nodemon) e teste os endpoints. Você pode usar o Postman, Insomnia ou até mesmo o navegador para requisições GET.
Exemplos de requisições:
- GET
http://localhost:3000/tasks— Retorna a lista de tarefas - POST
http://localhost:3000/taskscom corpo JSON{"title": "Nova tarefa"}— Cria uma nova tarefa - PUT
http://localhost:3000/tasks/1com corpo JSON{"completed": true}— Atualiza a tarefa com id 1 - DELETE
http://localhost:3000/tasks/1— Deleta a tarefa com id 1
Conclusão
Você criou uma REST API funcional em JavaScript usando Node.js e Express em menos de 30 minutos. Este é um excelente ponto de partida para explorar tópicos mais avançados como autenticação, conexão com banco de dados, validação de dados e deploy.
Nos próximos artigos, veremos como conectar esta API a um banco de dados MongoDB e como adicionar autenticação JWT. Continue praticando e boa codificação!