Como Criar APIs RESTful com Node.js e Express

As APIs RESTful são hoje a base da comunicação entre sistemas modernos, permitindo que aplicativos web, mobile e outros serviços troquem informações de forma simples e escalável.

Se você está começando no desenvolvimento backend, uma das formas mais práticas de criar APIs é usando Node.js com o framework Express. Neste artigo, você aprenderá os conceitos fundamentais e verá um exemplo prático para começar.


1. O que é uma API RESTful

Uma API RESTful segue os princípios REST (Representational State Transfer), que incluem:

  • Uso de endpoints claros para cada recurso (ex.: /users, /products);

  • Operações HTTP padrão (GET, POST, PUT, DELETE);

  • Respostas em JSON, para fácil integração com outros sistemas;

  • Comunicação stateless (sem guardar estado no servidor entre requisições).


2. Pré-requisitos

Antes de começar, instale em sua máquina:

  • Node.js (versão LTS recomendada)

  • npm ou yarn

  • Um editor de código, como VS Code


3. Criando o Projeto

No terminal, crie uma pasta para o projeto e inicialize:

 
mkdir api-restful cd api-restful npm init -y

Instale o Express:

 
npm install express

4. Estrutura Básica da API

Crie um arquivo server.js com este código inicial:

 
const express = require('express'); const app = express(); // Permite receber dados em JSON app.use(express.json()); // Rota inicial app.get('/', (req, res) => { res.send('API RESTful com Node.js e Express!'); }); // Servidor rodando const PORT = 3000; app.listen(PORT, () => { console.log(`Servidor rodando em http://localhost:${PORT}`); });

Execute:

 
node server.js

Abra http://localhost:3000 no navegador e veja a mensagem. 🎉


5. Criando Endpoints REST

Vamos criar um exemplo de API para gerenciar produtos:

Array de produtos (mock)

 
let produtos = [ { id: 1, nome: 'Notebook', preco: 3500 }, { id: 2, nome: 'Smartphone', preco: 2000 } ];

Endpoints CRUD

 
// Listar todos os produtos app.get('/produtos', (req, res) => { res.json(produtos); }); // Buscar um produto por ID app.get('/produtos/:id', (req, res) => { const produto = produtos.find(p => p.id == req.params.id); produto ? res.json(produto) : res.status(404).json({ mensagem: 'Produto não encontrado' }); }); // Criar novo produto app.post('/produtos', (req, res) => { const novoProduto = { id: produtos.length + 1, ...req.body }; produtos.push(novoProduto); res.status(201).json(novoProduto); }); // Atualizar um produto app.put('/produtos/:id', (req, res) => { const produto = produtos.find(p => p.id == req.params.id); if (produto) { produto.nome = req.body.nome || produto.nome; produto.preco = req.body.preco || produto.preco; res.json(produto); } else { res.status(404).json({ mensagem: 'Produto não encontrado' }); } }); // Deletar um produto app.delete('/produtos/:id', (req, res) => { produtos = produtos.filter(p => p.id != req.params.id); res.status(204).send(); });

Agora, você já tem um CRUD completo para gerenciar produtos!


6. Testando a API

Use ferramentas como:

  • Postman ou Insomnia para testar os endpoints.

  • fetch ou axios no front-end.

Exemplo de teste com curl:

 
curl http://localhost:3000/produtos

7. Boas Práticas

  • Organize o código em rotas, controladores e modelos.

  • Use um banco de dados real, como MongoDB, PostgreSQL ou MySQL.

  • Implemente validação de dados com bibliotecas como Joi ou Yup.

  • Adicione middlewares de autenticação para proteger rotas.

  • Utilize variáveis de ambiente com dotenv para manter chaves e portas seguras.


8. Próximos Passos

  • Conectar a API a um banco de dados real.

  • Adicionar autenticação com JWT.

  • Documentar a API usando Swagger.

  • Publicar a API em serviços como Render, Vercel ou Heroku.


Conclusão

Criar uma API RESTful com Node.js e Express é rápido, simples e altamente escalável. Com a base que você aprendeu neste artigo, é possível evoluir para aplicações mais robustas, integrando bancos de dados, autenticação e até microsserviços.

O segredo é começar pequeno, testar bastante e ir incrementando sua aplicação aos poucos.