É muito importante que um desenvolvedor saiba no mínimo a base da criação de uma API, hoje mostrarei passo a passo como criar uma API REST utilizando ExpressJS.
Ter uma API bem estruturada e de código limpo é muito importante para a manutenção e adição de novas features, principalmente quando se tem um sistema de grande escalabilidade.
Para criarmos a nossa API temos que ter primeiramente é necessário ter o node instalado na sua máquina e o npm. Caso não tenha instalado basta clicar aqui.
Após instalado verifique se tudo ocorreu corretamente na instalação
npm -v
node -v
Iniciando o projeto
Crie uma pasta para seu projeto e coloque o nome de sua preferência, colocarei nesse exemplo o nome de api. Entre na pasta e inicie o projeto.
npm init -y
Quando você faz isso, o sistema cria um arquivo chamado package.json, que contém as configurações e dependências do projeto. Agora instalaremos o ExpressJS.
npm install express
Caso queira instalar o nodemon fique à vontade. Essa biblioteca funciona para reiniciar o servidor node a cada alteração feita no código.
npm install -–save-dev nodemon
Utilizamos o – -save-dev pois essa dependência estará apenas no ambiente de desenvolvimento.
Após isso vamos cria um arquivo chamado server.js e iremos importar nosso Express e criar um instancia. Definiremos em seguida a porta que o servidor irá rodar, o process.env.PORT pega o valor da variável de ambiente, muito útil em situações que esteja rodando em produção pois ele pegará o valor dinamicamente, caso não esteja em produção ele pegará o valor 3000 que é porta local.
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
Depois colocaremos nosso Middleware para converter o corpo das requisições HTTP em JSON.
app.use(express.json());
Agora vamos iniciar o servidor para que ele fique escutando as requisições HTTP. E no nosso callback iremos adicionar um console.log para saber que o servidor foi iniciado.
app.listen(PORT, () => {
console.log (`Servidor rodando na porta ${PORT}`);
});
Para facilitar a execução, colocaremos um script lá no arquivo package.json.
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
}
Executaremos o comando para iniciar o servidor.
npm run dev
Caso tenha ocorrido tudo corretamente ficará igual na imagem abaixo:

Agora vamos definir nossas rotas.
Rota GET
Criaremos uma pasta chamada routes e dentro dela o arquivo users.js. Nesse arquivo criaremos as rotas GET e POST. Posteriormente você pode criar em arquivos separados que é a melhor prática pois ajuda na manutenção e legibilidade do código, porém aqui iremos colocar tudo em apenas um único arquivo.
Primeiramente temos que importar nosso Express e o router pois através dele será possível criar as rotas.
const express = require('express');
const router = express.Router();
Como não estamos utilizando nenhum banco de dados para armazenar os dados, criarei uma variável local do tipo Array para simular os dados sendo armazenados.
let usuarios = [];
Vamos criar nossa primeira rota que será o GET. É a rota mais fácil pois trará todos os dados. No primeiro parâmetro colocaremos o caminho e no segundo será um callback com dois parâmetros, um é a requisição o outro a resposta. Dentro do callback é feita a conversão de dados para JSON, no nosso caso o Array.
router.get('/', (req, res) => {
res.json(usuarios);
});
Rota POST
Usaremos o POST como a outra rota para criar um dado, em nosso caso para criar um usuário. Seguimos a mesma lógica do GET, mudando apenas a nomenclatura para POST. Em seguida, pegaremos o valor que enviamos via requisição HTTP e colocaremos em uma variável local nomeada como novoUsuario. Fiz uma validação de dados informando a obrigatoriedade dos campos, fique à vontade para modificar. Logo após vamos popular nosso array usuários para quando tiver a requisição do GET, ter valores disponíveis a serem mostrados. E por fim adicionaremos uma mensagem de confirmação e o usuário que foi adicionado.
router.post('/', (req, res) => {
const novoUsuario = req.body;
if (!novoUsuario.nome || !novoUsuario.email || !novoUsuario.idade) {
return res.status(400).json({ message: 'Todos os campos são obrigatórios!' });
}
usuarios.push(novoUsuario);
res.json({ message: 'Usuário adicionado com sucesso', novoUsuario });
});
No fim do arquivo, exportaremos nosso router para utilizá-lo em outro canto, como no arquivo server.js.
Após todas as rotas criadas modificaremos nosso arquivo server.js para importar nosso users.js e para definirmos as rotas, o arquivo completo abaixo.
//users.js
const express = require('express');
const app = express();
const userRoutes = require('./routes/users'); // Importação do arquivo users
const PORT = process.env.PORT || 3000;
app.use(express.json());
app.use('/api/users', userRoutes); // Definição de rotas
app.listen(PORT, () => {
console.log(`Servidor rodando na porta ${PORT}`);
});
Depois de tudo configurado corretamente podemos utilizar o postman para realizar testes. A primeira chamada do GET ele retornara um Array vazio. Caso não tenha o Postman basta clicar aqui para baixar.
POSTAMAN
Para efetuar uma requisição POST siga os passos abaixo:
- Selecione o método POST e insira os endpoint;
- Vá na aba body;
- Selecione a opção raw;
- Altere o método de inserção de dados de Text para JSON;
- Agora só informa os dados.
{
"nome": "Front Master",
"email": "[email protected]",
"idade": 25
}

Para efetuar um método GET basta alterar na lateral esquerda onde se coloca o endpoint para GET.

Após todos esses passos é para sua API está funcionando corretamente, em outro momento irei mostrar como fazer a integração com o mongoDB, pois nesse nosso exemplo estou salvado os dados do POST apenas em uma variável local. Hoje mostrei como criar uma API REST utilizando ExpressJS.
Referências: Express – Node.js