# API REST Express: guia passo a passo para criar

> API REST Express é um framework Node.js para construção de APIs web. O guia passo a passo abrange configuração inicial, definição de rotas HTTP, tratamento de requisições e respostas JSON. O processo inclui instalação de dependências, criação de endpoints, validação de dados e implementação de middlewares para evitar erros comuns.

*Net Propaganda · Apps e Software · 20 de julho de 2026 · Edivar Sampaio Quinteiro*

Criar uma API REST com Express é um processo que exige planejamento de rotas e tratamento de dados. Este guia mostra cada etapa, da configuração inicial à resposta JSON, com dicas para evitar erros comuns.

Criar uma API REST com Express é o primeiro passo para construir serviços web modulares. O objetivo é expor endpoints HTTP que recebem requisições e retornam respostas em JSON. Antes de começar, tenha Node.js instalado (v16 ou superior) e um editor de código. Este guia cobre a estrutura essencial, sem frameworks extras.

## Passo 1: Inicializar o projeto e instalar o Express

Crie uma pasta para o projeto e execute npm init -y para gerar o package.json. Depois, instale o Express com npm install express. Isso adiciona a dependência principal para gerenciar rotas e middlewares. **Dica**: evite instalar pacotes desnecessários agora, mantenha o projeto enxuto para facilitar a manutenção futura.

## Passo 2: Configurar o servidor básico

Crie um arquivo index.js e importe o Express com const express = require('express'). Inicialize o app com const app = express() e defina uma porta, como const port = 3000. Adicione app.use(express.json()) para que o servidor entenda requisições com corpo JSON. **Erro comum**: esquecer esse middleware faz com que req.body retorne undefined.

## Passo 3: Definir as rotas da API REST

As rotas representam os recursos da API. Para um CRUD básico de usuários, crie:

- app.get('/users', (req, res) => res.json([{ id: 1, nome: 'João' }]))
- app.post('/users', (req, res) => { /* lógica de criação */ res.status(201).json(req.body) })
- app.put('/users/:id'...) e app.delete('/users/:id'...).

Use req.params para capturar variáveis na URL e req.query para parâmetros opcionais. **Dica**: organize as rotas em arquivos separados com express.Router() se o projeto crescer.

## Passo 4: Iniciar o servidor e testar

Adicione app.listen(port, () => console.log('Servidor rodando na porta ' + port)) ao final do index.js. Execute node index.js no terminal. Teste os endpoints com curl ou Postman: envie uma requisição GET para http://localhost:3000/users e veja a resposta JSON. **Erro comum**: esquecer de tratar erros com middleware (err, req, res, next) => res.status(500).json({ erro: err.message }) faz o servidor travar em falhas.

## Checklist rápido do que foi feito

- [ ] Projeto Node.js inicializado com npm init -y
- [ ] Express instalado e configurado
- [ ] Middleware express.json() ativado
- [ ] Rotas GET e POST definidas
- [ ] Servidor rodando e testado com resposta JSON

## FAQ

### Qual a diferença entre API REST e RESTful?

RESTful é a implementação prática dos princípios REST. Uma API REST segue o estilo arquitetural, enquanto RESTful indica que ela respeita as constraints como stateless e uso de verbos HTTP corretos.

### Preciso de um banco de dados para criar uma API REST com Express?

Não. Uma API REST pode usar dados estáticos em memória ou arquivos JSON. Bancos como MongoDB ou PostgreSQL são adicionados depois para persistência real.

### Como lidar com CORS no Express?

Instale o pacote cors com npm install cors e use app.use(cors()) antes das rotas. Isso permite requisições de origens diferentes durante o desenvolvimento.

### O que fazer se o servidor não iniciar?

Verifique se a porta 3000 está livre e se não há erro de sintaxe no index.js. Use node --check index.js para validar o código antes de executar.

### Como organizar rotas em projetos maiores?

Use express.Router() para criar módulos de rotas (ex.: routes/users.js) e importe no index.js com app.use('/users', userRouter). Isso mantém o código modular.

### Testes automatizados são necessários?

Sim, para garantir que as rotas funcionem após alterações. Use frameworks como Jest com Supertest para simular requisições HTTP e validar respostas.

---

Fonte (canonical): https://netpropaganda.com.br/apps-e-software/api-rest-express-guia-passo-a-passo-para-criar/
