9.7.3 - Service Pattern (Padrão de Serviços)
O padrão Service (ou Service Layer) é uma prática muito comum no desenvolvimento de APIs para organizar melhor a lógica de negócio. Em vez de colocar toda a lógica diretamente nos controllers, ela é delegada para arquivos específicos chamados services.
🎯 Objetivo
Separar responsabilidades:
Controllers cuidam da requisição e resposta (entrada e saída).
Services cuidam da lógica do que deve ser feito (processamento e regras).
🔍 Exemplo prático
Suponha que você tenha um endpoint para registrar um novo usuário:
Controller (userController.js):
const userService = require('../services/userService');
const registerUser = async (req, res) => {
try {
const result = await userService.register(req.body);
res.status(201).json(result);
} catch (err) {
res.status(400).json({ error: err.message });
}
};
Service (userService.js):
✅ Vantagens
Organização: código mais limpo e separado por função.
Reutilização: serviços podem ser usados em outros lugares (ex: outro controller).
Testabilidade: facilita testes unitários, pois a lógica está isolada.
Escalabilidade: projetos maiores precisam dessa separação para manter clareza.
Atualizado


