Como Criar uma API REST do Zero em 2025: Guia Completo

criar API REST

E aí, dev! Tô ligado que criar uma API REST parece coisa de outro mundo, mas é mais de boa do que parece! 😎 Quando eu comecei na programação, apanhei muito pra entender o que é um CRUD e como fazer uma API funcionar. Então para te ajudar hoje, vou te guiar passo a passo em como criar uma API REST do zero em 2025, usando Node.js e Express. Vamos fazer um sistema de tarefas (tipo um Todo List) com operações CRUD (Create, Read, Update, Delete). E o melhor: dá pra testar tudo online e hospedar de graça! Preparado? Pega um café, um notebook top (confira os melhores aqui), e bora codar!


O que é uma API REST e CRUD?

Uma API REST é como um garçom que leva pedidos (requisições) do cliente (front-end) pro cozinheiro (servidor) e traz a comida (dados) de volta. Ela usa o protocolo HTTP (GET, POST, PUT, DELETE) pra conversar. Já o CRUD é o coração da coisa:

  • Create: Cria dados (ex.: adicionar uma tarefa).
  • Read: Lê dados (ex.: listar tarefas).
  • Update: Atualiza dados (ex.: editar uma tarefa).
  • Delete: Deleta dados (ex.: remover uma tarefa).

Quer um exemplo? Pense num app de tarefas: a API deixa você criar, listar, editar e apagar tarefas. Simples, né? Vamos construir uma assim!


O que Você Vai Precisar

  • Notebook ou PC: Um com 8GB RAM já dá conta, mas 16GB é melhor pra rodar Node.js e VS Code lisinho. Veja algumas opções aqui.
  • Node.js: Vamos instalar localmente ou usar um site online.
  • Conhecimento Básico: Um pouco de JavaScript ajuda, mas explico tudo!
  • Hospedagem: Vamos subir a API no Render (grátis). Confira hospedagens grátis.
  • Ferramenta pra Testar: Postman ou Insomnia (tem versão grátis).

Passo a Passo: Criando sua API REST com Node.js e Express

Vamos criar uma API de tarefas com endpoints CRUD. Siga o fluxo e, se quiser, testa tudo online no Replit.

Passo 1: Configurar o Ambiente

  1. Instale o Node.js: Baixe em nodejs.org (versão LTS). No Windows/Mac/Linux, é só seguir o wizard.
  2. Crie um Projeto: Abre o terminal (ou Replit) e roda: mkdir todo-api cd todo-api npm init -y
  3. Instale o Express: É o framework que facilita a API. Roda: npm install express

Passo 2: Criar o Servidor

Crie um arquivo index.js com este código:

const express = require('express');
const app = express();
app.use(express.json()); // Pra ler JSON nas requisições

app.get('/', (req, res) => {
  res.send('Bem-vindo à API de Tarefas!');
});

app.listen(3000, () => {
  console.log('API rodando na porta 3000!');
});

Roda com node index.js e acessa http://localhost:3000 no navegador. Tá vendo “Bem-vindo à API de Tarefas!”? Então tá funcionando!

Passo 3: Implementar o CRUD

Vamos criar endpoints pra gerenciar tarefas. Adiciona isso no index.js:

let tarefas = []; // Banco de dados fake (array)

// Create (POST)
app.post('/tarefas', (req, res) => {
  const { titulo } = req.body;
  if (!titulo) return res.status(400).json({ erro: 'Título é obrigatório!' });
  const tarefa = { id: tarefas.length + 1, titulo, concluida: false };
  tarefas.push(tarefa);
  res.status(201).json(tarefa);
});

// Read (GET - todas)
app.get('/tarefas', (req, res) => {
  res.json(tarefas);
});

// Read (GET - por ID)
app.get('/tarefas/:id', (req, res) => {
  const tarefa = tarefas.find(t => t.id === parseInt(req.params.id));
  if (!tarefa) return res.status(404).json({ erro: 'Tarefa não encontrada!' });
  res.json(tarefa);
});

// Update (PUT)
app.put('/tarefas/:id', (req, res) => {
  const tarefa = tarefas.find(t => t.id === parseInt(req.params.id));
  if (!tarefa) return res.status(404).json({ erro: 'Tarefa não encontrada!' });
  const { titulo, concluida } = req.body;
  tarefa.titulo = titulo || tarefa.titulo;
  tarefa.concluida = concluida !== undefined ? concluida : tarefa.concluida;
  res.json(tarefa);
});

// Delete (DELETE)
app.delete('/tarefas/:id', (req, res) => {
  const index = tarefas.findIndex(t => t.id === parseInt(req.params.id));
  if (index === -1) return res.status(404).json({ erro: 'Tarefa não encontrada!' });
  tarefas.splice(index, 1);
  res.status(204).send();
});

Passo 4: Testar a API

Baixe o Postman (grátis) ou use o Insomnia. Teste os endpoints:

  • POST http://localhost:3000/tarefas (body: {“titulo”: “Estudar Node.js”}) → Cria uma tarefa.
  • GET http://localhost:3000/tarefas → Lista todas.
  • GET http://localhost:3000/tarefas/1 → Pega uma tarefa.
  • PUT http://localhost:3000/tarefas/1 (body: {“titulo”: “Estudar Express”, “concluida”: true}) → Atualiza.
  • DELETE http://localhost:3000/tarefas/1 → Deleta.

Funcionou? Então bora pro deploy!

Passo 5: Hospedar a API no Render

  1. Crie uma Conta: Vá no Render (grátis).
  2. Suba pro GitHub: Crie um repositório, faça upload do index.js e package.json.
  3. Deploy no Render: Conecte o repositório, escolha “Node.js” e configure a porta 3000.
  4. Teste Online: O Render te dá uma URL (ex.: seu-app.onrender.com). Testa no Postman!
    Quer outras opções de hospedagem? Veja nosso guia grátis.

Comparação de Ferramentas pra Criar e Testar APIs

FerramentaUsoGrátis?Indicado Para
Node.js/ExpressCriar APIsSimBack-End
PostmanTestar APIsSimTodos os Devs
InsomniaTestar APIsSimTodos os Devs
RenderHospedar APIsSim (free tier)Deploy
ReplitCodar e TestarSimIniciantes

Dicas pra Turbinar sua API

  • Hospedagem: Render é grátis, mas Hostinger é top pra projetos grandes. Veja Hostinger.
  • Testes Online: Use Replit pra codar sem instalar nada.
  • Aprenda CRUD: Entenda o conceito a fundo. Leia nosso guia “O que é CRUD?”.

Próximos Passos

Criou sua API? Parabéns, dev! 🎉 Agora, tenta:

  • Adicionar um banco de dados (ex.: MongoDB).
  • Proteger a API com autenticação (ex.: JWT).
  • Conectar a um front-end React (veja sites pra codar online).

Já criou uma API REST? Conta nos comentários como foi! E se curtiu o guia, clica nos links pra apoiar o Dev Por Aí. Isso ajuda a trazer mais dicas pra comunidade! 😎

Valeu, e bons códigos!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Dev Por Ai
Visão geral da privacidade
Este site usa cookies para que possamos oferecer a melhor experiência possível ao usuário. As informações sobre cookies são armazenadas no seu navegador e desempenham funções como reconhecê-lo quando você retornar ao nosso site e ajudar nossa equipe a entender quais seções do site você acha mais interessantes e úteis.