Skip to content

LucasJSM/client-service-api

Repository files navigation

Clients Hub API

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.

📌 Sobre o projeto

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.

Swagger UI


🛠️ Tecnologias Utilizadas

  • 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

📊 Funcionalidades

Gestão de Clientes

  • 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.

Gestão de Produtos

  • 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.

🏗️ Arquitetura do Sistema

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.

📚 Objetivos do projeto

  • 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

🔧 Configuração e Execução

Pré-requisitos

  • Visual Studio 2022 ou VS Code.
  • SDK do .NET 10 instalado.

Passo a Passo

  1. Clone o repositório:
git clone https://github.com/LucasJSM/client-service-api.git
  1. 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");
  1. Restaure as dependências e execute o projeto:
dotnet restore
dotnet run --project ProductClientHub.API
  1. Acesse a documentação Swagger em: http://localhost:5018/swagger (ou conforme configurado no seu launchSettings.json).

📄 Licença

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.

About

API REST desenvolvida com .NET 10 para gestão centralizada de clientes e produtos. Utiliza Arquitetura em Camadas, Use Cases, EF Core com SQLite, FluentValidation e tratamento global de exceções.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages