API REST desenvolvida em C# com .NET 10 para o gerenciamento centralizado de clientes e seus respectivos produtos. O projeto foca na aplicação de boas práticas de desenvolvimento, como arquitetura em camadas, validações fluídas e tratamento global de exceções.
O Clients Hub API permite o controle completo de um ecossistema de clientes, onde cada cliente pode possuir múltiplos produtos associados. A API foi construída seguindo os princípios de Clean Code e Separation of Concerns, utilizando o padrão de Use Cases para isolar a lógica de negócio. Ela fornece endpoints para operações CRUD e pode ser integrada com aplicações web, mobile ou outros serviços.
Este projeto foi desenvolvido para fins de estudo e prática de desenvolvimento backend com .NET.
- Runtime: .NET 10.0
- ORM: Entity Framework Core 10.0
- Banco de Dados: SQLite
- Validação: FluentValidation para garantir a integridade dos dados de entrada
- Documentação: Swagger para exploração interativa da API
- Cadastro: Registro de novos clientes com validação de nome e e-mail único.
- Consulta: Listagem completa e busca detalhada por ID, incluindo os produtos vinculados.
- Atualização: Alteração de dados cadastrais.
- Remoção: Exclusão de registros de clientes da base de dados.
- Vínculo: Cadastro de produtos diretamente associados a um cliente existente.
- Listagem: Visualização de todos os produtos cadastrados no sistema.
- Exclusão: Remoção de itens do catálogo.
O projeto está dividido em três camadas principais para facilitar a manutenção e escalabilidade:
- ProductClientHub.API: Contém os controladores, filtros de exceção, infraestrutura de banco de dados e as regras de negócio organizadas por casos de uso (Use Cases).
- ProductClientHub.Communication: Define os contratos de entrada (Requests) e saída (Responses) da API.
- ProductClientHub.Exceptions: Centraliza o tratamento de erros e exceções personalizadas da aplicação.
- Praticar desenvolvimento de APIs REST com ASP.NET Core
- Aplicar arquitetura em camadas
- Trabalhar com Entity Framework Core
- Utilizar Swagger para documentação de API
- Visual Studio 2022 ou VS Code.
- SDK do .NET 10 instalado.
- Clone o repositório:
git clone https://github.com/LucasJSM/client-service-api.git- Ajuste a string de conexão no arquivo ProductClientHubDbContext.cs para apontar para o diretório local onde o banco SQLite será criado:
optionsBuilder.UseSqlite("Data Source=C:\\Caminho\\Para\\Seu\\Banco\\ProductClientHub.db");- Restaure as dependências e execute o projeto:
dotnet restore
dotnet run --project ProductClientHub.API- Acesse a documentação Swagger em: http://localhost:5018/swagger (ou conforme configurado no seu launchSettings.json).
Este projeto está sob a licença MIT.
Sinta-se à vontade para usar e estudar o projeto, dar uma estrela no repositório ⭐, submeter Pull Requests ou reportar erros que encontrar.
