Como escrever uma API REST em JavaScript em 30 minutos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que uma REST API em JavaScript é rápida e simples



Criar sua própria REST API é um dos primeiros passos para entender o desenvolvimento backend. Se você já conhece JavaScript, pode escrever a parte do servidor de uma aplicação em literalmente meia hora. Neste artigo, vamos analisar como escrever uma REST API em JavaScript usando Node.js e o framework Express. Criaremos uma API simples para gerenciar uma lista de tarefas (To-Do List) com suporte para operações CRUD padrão: criar, ler, atualizar e deletar dados.



Este guia é ideal para iniciantes que desejam iniciar rapidamente seu primeiro servidor e entender como funcionam requisições, rotas e middleware. Ao final do artigo, você terá uma API funcional que pode ser testada no Postman ou no navegador.



Passo 1: Preparação do ambiente e instalação das dependências



Antes de escrever o código, certifique-se de ter o Node.js instalado (versão 16 ou superior). Caso não tenha, baixe-o do site oficial. Para verificar, execute no terminal:



node -vnpm -v


Agora crie uma pasta para o projeto e inicialize-o:



mkdir my-apicd my-apinpm init -y


Instale a dependência principal — o framework Express, que simplifica muito o trabalho com HTTP:



npm install express


Instale também o nodemon (opcional) para reinicialização automática do servidor ao alterar o código:



npm install --save-dev nodemon


Adicione o script de inicialização no arquivo package.json:



"scripts": {  "start": "node index.js",  "dev": "nodemon index.js"}


Passo 2: Criando o servidor básico e a primeira rota



Crie o arquivo index.js na raiz do projeto. Vamos começar importando o Express e iniciando o servidor na porta 3000:



const express = require('express');const app = express();const PORT = 3000;

// Middleware para parsing de JSONapp.use(express.json());

// Rota de testeapp.get('/', (req, res) => { res.send('Olá, mundo! A API está funcionando.');});

app.listen(PORT, () => { console.log(`Servidor iniciado em http://localhost:${PORT}`);});


Inicie o servidor com o comando npm run dev (se estiver usando nodemon) ou node index.js. Abra o navegador e acesse http://localhost:3000 — você deverá ver a mensagem "Olá, mundo! A API está funcionando."



Parabéns! Você acabou de escrever uma REST API em JavaScript. Agora vamos adicionar a lógica real.



Passo 3: Implementação das operações CRUD para a lista de tarefas



Vamos criar um armazenamento temporário de dados na memória (um array de objetos). Em um projeto real, você conectaria um banco de dados, mas para uma lição de 30 minutos isso é suficiente.



let tasks = [  { id: 1, title: 'Estudar Express', completed: false },  { id: 2, title: 'Escrever API', completed: true }];

let nextId = 3;


Agora vamos implementar as quatro rotas principais:



GET /tasks — Obter todas as tarefas

app.get('/tasks', (req, res) => {  res.json(tasks);});


POST /tasks — Criar uma nova tarefa

app.post('/tasks', (req, res) => {  const { title } = req.body;  if (!title) {    return res.status(400).json({ error: 'O título da tarefa é obrigatório' });  }  const newTask = {    id: nextId++,    title,    completed: false  };  tasks.push(newTask);  res.status(201).json(newTask);});


PUT /tasks/:id — Atualizar uma tarefa

app.put('/tasks/:id', (req, res) => {  const id = parseInt(req.params.id);  const { title, completed } = req.body;  const task = tasks.find(t => t.id === id);  if (!task) {    return res.status(404).json({ error: 'Tarefa não encontrada' });  }  if (title !== undefined) task.title = title;  if (completed !== undefined) task.completed = completed;  res.json(task);});


DELETE /tasks/:id — Deletar uma tarefa

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


Passo 4: Testando a API



Reinicie o servidor (se não estiver usando nodemon) e teste os endpoints. Você pode usar o Postman, Insomnia ou até mesmo o navegador para requisições GET.



Exemplos de requisições:



  • GET http://localhost:3000/tasks — Retorna a lista de tarefas
  • POST http://localhost:3000/tasks com corpo JSON {"title": "Nova tarefa"} — Cria uma nova tarefa
  • PUT http://localhost:3000/tasks/1 com corpo JSON {"completed": true} — Atualiza a tarefa com id 1
  • DELETE http://localhost:3000/tasks/1 — Deleta a tarefa com id 1


Conclusão



Você criou uma REST API funcional em JavaScript usando Node.js e Express em menos de 30 minutos. Este é um excelente ponto de partida para explorar tópicos mais avançados como autenticação, conexão com banco de dados, validação de dados e deploy.



Nos próximos artigos, veremos como conectar esta API a um banco de dados MongoDB e como adicionar autenticação JWT. Continue praticando e boa codificação!

Blogs

Book Recommendations