Como escrever uma API REST em JavaScript em 30 minutos: para iniciantes

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: API REST é simples

API REST (Representational State Transfer) é a "linguagem" que diferentes programas usam para se comunicar na internet. Se você quer que sua aplicação web forneça dados para outra aplicação (por exemplo, um cliente mobile ou um frontend em React), você precisa de uma API. E hoje vamos escrever uma do zero em JavaScript (Node.js) em apenas 30 minutos.

Vamos usar a biblioteca mais popular — Express. Ela é simples, flexível e ideal para iniciantes. Ao final do artigo, você terá um servidor funcional com quatro operações CRUD principais (criação, leitura, atualização, exclusão). Vamos lá!



Passo 1: Preparação do ambiente e instalação do Express

Antes de escrever código, verifique se você tem o Node.js instalado. Você pode verificar isso no terminal:

node -vnpm -v

Se as versões aparecerem — está tudo pronto. Caso contrário, baixe o Node.js do site oficial.

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

mkdir my-first-apicd my-first-apinpm init -y

O arquivo package.json foi criado. Instale o Express e a biblioteca para trabalhar com UUID (para gerar IDs únicos):

npm install express uuid

Pronto. Crie o arquivo index.js — este será o arquivo principal do nosso servidor.



Passo 2: Criando um servidor simples com Express

Abra o index.js e escreva a primeira versão do servidor:

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

// Parse de JSON do corpo da requisiçãoapp.use(express.json());

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

// Iniciar o servidorapp.listen(PORT, () => { console.log(`Servidor rodando em http://localhost:${PORT}`);});

Inicie o servidor com o comando:

node index.js

Abra o navegador e acesse http://localhost:3000. Se você vir a mensagem de boas-vindas — está tudo funcionando!

Vamos analisar o código: express.json() é um middleware que converte automaticamente o JSON da requisição em um objeto JavaScript. Isso é necessário para requisições POST e PUT.



Passo 3: Adicionando dados e rotas CRUD

Agora a parte mais interessante — vamos criar um array com dados (em um projeto real você usaria um banco de dados, mas para aprendizado um array serve). Será uma lista de livros.

const { v4: uuidv4 } = require('uuid');

// Simulação de banco de dadoslet books = [];

// Criar um livro (POST)app.post('/api/books', (req, res) => { const { title, author } = req.body; if (!title || !author) { return res.status(400).json({ error: 'É necessário informar title e author' }); } const newBook = { id: uuidv4(), title, author }; books.push(newBook); res.status(201).json(newBook);});

// Obter todos os livros (GET)app.get('/api/books', (req, res) => { res.json(books);});

// Obter um livro por ID (GET)app.get('/api/books/:id', (req, res) => { const book = books.find(b => b.id === req.params.id); if (!book) { return res.status(404).json({ error: 'Livro não encontrado' }); } res.json(book);});

// Atualizar um livro (PUT)app.put('/api/books/:id', (req, res) => { const book = books.find(b => b.id === req.params.id); if (!book) { return res.status(404).json({ error: 'Livro não encontrado' }); } const { title, author } = req.body; if (title) book.title = title; if (author) book.author = author; res.json(book);});

// Excluir um livro (DELETE)app.delete('/api/books/:id', (req, res) => { const index = books.findIndex(b => b.id === req.params.id); if (index === -1) { return res.status(404).json({ error: 'Livro não encontrado' }); } books.splice(index, 1); res.status(204

Blogs

Book Recommendations