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 tarefas
- GET http://localhost:3000/tasks/1— detalhes da tarefa
- POST http://localhost:3000/taskscom JSON- {"title": "Nova tarefa"}— cria tarefa
- PUT http://localhost:3000/tasks/1com JSON- {"title": "Atualizado","completed": true}— atualiza a tarefa
- DELETE 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.
