Projeto criado como apoio para meu estágio, com foco em boas práticas de separação de responsabilidades e arquitetura limpa.
- ✅ Cadastro de produtos (
CreateProductCommand
) - ✅ Consulta de produtos por ID (
GetProductByIdQuery
) - ✅ Listagem de todos os produtos (
GetAllProductsQuery
) - ✅ Atualização de produto (
UpdateProductCommand
) - ✅ Remoção de produto (
DeleteProductCommand
)
- .NET 9
- ASP.NET Core Web API
- MediatR
- Entity Framework Core (com banco em memória)
- Padrão CQRS (Commands e Queries separados)
- Swagger (para testes dos endpoints)
📂Controllers
└── ProdutosController.cs
📂Domain
└── Command.cs
└── ProdutoCreateCommand.cs
└── ProdutoDeleteCommand.cs
└── ProdutoUpdateCommand.cs
├── Entity.cs
└── Produto.cs
└── Handler.cs
└── ProdutoCreateCommandHandler.cs
└── ProdutoDeleteCommandHandler.cs
└── ProdutoUpdateCommandHandler.cs
📂EventsHandlers
└── LogEventsHandler.cs
📂Notifications
├── ErroNotification.cs
├── ProdutoCreateNotification.cs
├── ProdutoDeleteNotification.cs
└── ProdutoUpdateNotification.cs.cs
📂Repository
├── IRepository.cs
└── ProdutoRepository.cs
Program.cs
Startup.cs
Clone o repositório:
git clone https://github.com/seu-usuario/seu-repositorio.git
Abra o projeto no Visual Studio 2022 ou superior.
Execute com F5 ou usando o terminal:
dotnet run
Acesse o Swagger:
https://localhost:5001/swagger
-
Criar um produto
POST /api/products { "name": "Notebook", "price": 4200 }
-
Listar todos os produtos
GET /api/products
- Buscar por ID
GET /api/products/{id}
- Atualizar produto
PUT /api/products/{id}
- Deletar produto
DELETE /api/products/{id}
Ana Júlia de Lima Aguiar Leite