Uma API RESTful robusta para gerenciamento de produtos, construída com Node.js, Express e PostgreSQL.
- CRUD completo de produtos
- Validação de dados
- Logging avançado com rastreabilidade
- Tratamento de erros robusto
- Sanitização de dados
- Formatação automática de datas
- Encerramento gracioso do servidor
- Métricas de performance
- Node.js (v14 ou superior)
- PostgreSQL (v12 ou superior)
- npm ou yarn
- Clone o repositório:
git clone https://github.com/01Rian/product-api.git
cd product-api
- Instale as dependências:
npm install
- Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações
- Inicie o servidor:
npm start
PORT=3000
NODE_ENV=development
DB_HOST=localhost
DB_PORT=5432
DB_NAME=products_db
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
GET /api/products
- Lista todos os produtosGET /api/products/:id
- Obtém um produto específicoPOST /api/products
- Cria um novo produtoPUT /api/products/:id
- Atualiza um produtoDELETE /api/products/:id
- Remove um produto
{
"name": "Produto Exemplo",
"price": 99.99,
"description": "Descrição do produto",
"category": "Categoria",
"quantity": 10,
"image": "url-da-imagem"
}
A aplicação possui um sistema de logging abrangente que inclui:
- Logs de requisições HTTP com IDs únicos
- Métricas de tempo de resposta
- Logs de operações no banco de dados
- Logs de validação e sanitização
- Rastreamento de erros
- Rotação automática de logs
info
: Operações normaiswarn
: Alertas e validações falhaserror
: Erros e exceções
- Nome do produto obrigatório
- Preço deve ser um número positivo
- Quantidade não pode ser negativa
- Sanitização automática de strings
- Formatação automática de datas
A aplicação pode ser executada em containers Docker:
# Executar o container
docker compose up -d
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.