Criação de uma API RESTful
Passo 1: Configurar Ambiente e Projeto
- Instale Node.js no sistema (se ainda não tiver).
- Crie a pasta do projeto e inicialize o npm:
mkdir api-restful
cd api-restful
npm init -y
- Instale o Express:
npm install express
Passo 2: Criar Estrutura Básica da API
Crie um arquivo chamado app.js com o seguinte conteúdo:
const express = require('express');
const app = express();
const port = 3000;
// Middleware para interpretar JSON no corpo das requisições
app.use(express.json());
// Simulação de banco de dados: array de objetos
let tasks = [
{ id: 1, title: "Comprar leite", completed: false },
{ id: 2, title: "Pagar contas", completed: true },
];
// Rota para listar todas as tarefas (GET)
app.get('/tasks', (req, res) => {
res.json(tasks);
});
// Rota para buscar uma tarefa pelo id (GET)
app.get('/tasks/:id', (req, res) => {
const id = parseInt(req.params.id);
const task = tasks.find(t => t.id === id);
if (!task) {
return res.status(404).json({ message: "Tarefa não encontrada" });
}
res.json(task);
});
// Rota para criar nova tarefa (POST)
app.post('/tasks', (req, res) => {
const newTask = {
id: tasks.length + 1,
title: req.body.title,
completed: false
};
tasks.push(newTask);
res.status(201).json(newTask);
});
// Rota para atualizar tarefa pelo id (PUT)
app.put('/tasks/:id', (req, res) => {
const id = parseInt(req.params.id);
const task = tasks.find(t => t.id === id);
if (!task) {
return res.status(404).json({ message: "Tarefa não encontrada" });
}
task.title = req.body.title !== undefined ? req.body.title : task.title;
task.completed = req.body.completed !== undefined ? req.body.completed : task.completed;
res.json(task);
});
// Rota para deletar tarefa pelo id (DELETE)
app.delete('/tasks/:id', (req, res) => {
const id = parseInt(req.params.id);
tasks = tasks.filter(t => t.id !== id);
res.status(204).send();
});
// Iniciar o servidor
app.listen(port, () => {
console.log(`Servidor rodando na porta ${port}`);
});
Passo 3: Executar e Testar API
- No terminal, execute o servidor:
node app.js
- Acesse via navegador ou use ferramentas como Postman ou curl para:
GET http://localhost:3000/tasks— lista tarefasGET http://localhost:3000/tasks/1— detalhes da tarefaPOST http://localhost:3000/taskscom JSON{"title": "Nova tarefa"}— cria tarefaPUT http://localhost:3000/tasks/1com JSON{"title": "Atualizado","completed": true}— atualiza a tarefaDELETE http://localhost:3000/tasks/1— exclui a tarefa
Explicação do Código
- Usamos o
express.json()middleware para interpretar JSON no corpo das requisições. - As rotas respondem aos métodos HTTP adequados: GET (ler), POST (criar), PUT (atualizar) e DELETE (remover).
- O array
taskssimula uma base de dados simples para demonstrar a lógica CRUD. - Enviamos códigos HTTP apropriados e mensagens para controle de erros básicos.
Este exemplo serve como base para uma API RESTful simples usando Express e pode ser facilmente expandido para conexão com base de dados real, autenticação, validação e muito mais.
