Criação de uma API RESTful

Passo 1: Configurar Ambiente e Projeto

  1. Instale Node.js no sistema (se ainda não tiver).
  2. Crie a pasta do projeto e inicialize o npm:
mkdir api-restful
cd api-restful
npm init -y
  1. 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

  1. No terminal, execute o servidor:
node app.js
  1. 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/tasks com JSON {"title": "Nova tarefa"} — cria tarefa
  • PUT http://localhost:3000/tasks/1 com 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 tasks simula 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.