Este projeto implementa um sistema de e-commerce utilizando uma arquitetura de microserviços. Sendo eles:
- ProdutoAPI - Gerenciamento de produtos
- GarantiaAPI - Gerenciamento de garantias
- VendaAPI - Processamento de vendas
- .NET 6
- ASP.NET Core Web API
- Docker e Docker Compose
- CQRS com MediatR
- FluentValidation
- AspNetCoreRateLimit
ECommerceSystem/
├── ProdutoAPI/ # Microserviço de Produtos
├── GarantiaAPI/ # Microserviço de Garantias
├── VendaAPI/ # Microserviço de Vendas
└── docker-compose.yml # Arquivo de Configuração da Docker
Para executar o sistema, siga os passos abaixo:
-
Precisa ter o Docker e o Docker Compose instalados.
-
Na raiz do projeto, execute o comando:
docker-compose up --build-
Os serviços estão disponíveis nas portas:
- ProdutoAPI: http://localhost:5001
- GarantiaAPI: http://localhost:5002
- VendaAPI: http://localhost:5003
-
A documentação da API/Swagger está disponível nas urls:
- ProdutoAPI: http://localhost:5001/swagger
- GarantiaAPI: http://localhost:5002/swagger
- VendaAPI: http://localhost:5003/swagger
- Cadastro, atualização e remoção de produtos
- Consulta de produtos
- Controle de estoque
- Cadastro, atualização e exclusão de garantias
- Consulta de garantias disponíveis
- Processamento de vendas
- Consulta de vendas
- Integração com os serviços de Produto e Garantia
O sistema utiliza uma arquitetura de microserviços, onde cada serviço é independente e se comunica através de APIs REST. O padrão CQRS (Command Query Responsibility Segregation) é utilizado para ter uma maior escalabilidade e manutenibilidade, separando as operações de leitura (consultas) das operações de escrita (comandos).
Os serviços se comunicam utilizando chadas HTTP, onde o serviço de Vendas consome os serviços de Produtos e Garantias para realizar suas operações.
Todos os serviços tem uma proteção contra abusos na utilização dos endpoints. Essas configurações podem ser alteradas nos arquivos appsettings.json de cada serviço.