Neste guia completo, você aprenderá a desenvolver uma API RESTful utilizando Node.js e Express, dois componentes essenciais para quem deseja criar sistemas eficientes e escaláveis.
Introdução
APIs RESTful são amplamente utilizadas para integrar diferentes sistemas e aplicativos, facilitando a comunicação entre eles. Utilizar Node.js em conjunto com o framework Express é uma maneira eficiente de construir essas APIs, principalmente devido à sua simplicidade e flexibilidade.
Pré-Requisitos
Antes de começar, certifique-se de que você tem:
- Node.js e npm instalados.
- Um editor de código, como o Visual Studio Code.
- Conhecimentos básicos de JavaScript.
Passo a Passo para Criar a API
1. Inicializando o Projeto
Primeiramente, abra seu terminal e crie uma nova pasta para o projeto:
mkdir minha-api-restful
Em seguida, navegue até a pasta e inicialize um novo projeto Node.js:
cd minha-api-restful
npm init -y
2. Instalando Dependências
Logo após, instale o Express.js e outras dependências necessárias para o projeto:
bashCopiar códigonpm install express body-parser nodemon
3. Criando o Servidor
Agora, crie um arquivo index.js
na raiz do projeto e adicione o seguinte código:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Servidor rodando em http://localhost:${port}`);
});
4. Configurando Rotas
Para que sua API seja funcional, você precisa criar rotas para operações CRUD (Create, Read, Update, Delete). Portanto, dentro da pasta do projeto, crie uma nova pasta chamada routes
e, dentro dela, um arquivo api.js
com o seguinte conteúdo:
const express = require('express');
const router = express.Router();
let items = [];
router.post('/items', (req, res) => {
const item = req.body;
items.push(item);
res.status(201).send(item);
});
router.get('/items', (req, res) => {
res.status(200).send(items);
});
router.get('/items/:id', (req, res) => {
const id = req.params.id;
const item = items.find(i => i.id === id);
if (item) {
res.status(200).send(item);
} else {
res.status(404).send({ message: 'Item not found' });
}
});
router.put('/items/:id', (req, res) => {
const id = req.params.id;
const index = items.findIndex(i => i.id === id);
if (index !== -1) {
items[index] = req.body;
res.status(200).send(req.body);
} else {
res.status(404).send({ message: 'Item not found' });
}
});
router.delete('/items/:id', (req, res) => {
const id = req.params.id;
const index = items.findIndex(i => i.id === id);
if (index !== -1) {
items.splice(index, 1);
res.status(204).send();
} else {
res.status(404).send({ message: 'Item not found' });
}
});
module.exports = router;
Agora, importe e use essa rota no index.js
:
const express = require('express');
const bodyParser = require('body-parser');
const apiRouter = require('./routes/api');
const app = express();
const port = 3000;
app.use(bodyParser.json());
app.use('/api', apiRouter);
app.listen(port, () => {
console.log(`Servidor rodando em http://localhost:${port}`);
});
Conclusão
Parabéns! Você acabou de criar uma API RESTful básica utilizando Node.js e Express. Embora seja simples, esta estrutura pode ser expandida de várias maneiras. Por exemplo, você pode adicionar novas rotas, incluir uma camada de segurança ou conectar a uma base de dados para armazenamento permanente.