📌 Observação sobre o Repositório: > O projeto foi desenvolvido de forma evolutiva. Cada etapa da implementação está isolada em sua respectiva branch:
v1: CRUD básico com MongoDB.v2: Mensageria com RabbitMQ e Worker.v3: Autenticação, Validações, Logs, Cache e Mapping.
- Criação de API REST com .NET Core 8.
- CRUD completo de Cotações.
- Persistência de dados utilizando MongoDB.
- Orquestração de ambiente com Docker Compose.
- Integração com RabbitMQ.
- Publicação de evento de "Cotação Aprovada".
- Desenvolvimento de um Worker/Consumer para processamento de Propostas.
- Autenticação: Proteção de rotas via JWT Bearer Token.
- Validação: Uso de FluentValidation para garantir integridade dos dados.
- Mapping: Implementação de AutoMapper para separação de DTOs e Entidades.
- Logs: Implementação de logs com Serilog.
- Cache: Performance otimizada com MemoryCache.
- Runtime: .NET 8
- Database: MongoDB (NoSQL)
- Message Broker: RabbitMQ v7
- Logging: Serilog
- Validation: FluentValidation
- Mapping: AutoMapper
- Auth: JWT Bearer
Certifique-se de ter o Docker instalado e execute na raiz do projeto:
docker compose up -d
Para fins de teste, o sistema utiliza autenticação estática:
Email: admin@admin.com
Senha: admin
Realize o login no endpoint POST /api/auth/login. Utilize o token retornado para autorizar as demais requisições no botão "Authorize" do Swagger.