Skip to content

API da rede social kaloom para acesso e persistencia de dados no MySQL, feita com C# utilizando .NET, ASP.NET Core e EF Core, estruturada com microserviços monorepo e Clean Architecture.

License

Notifications You must be signed in to change notification settings

kaloom-team/api-kaloom

Repository files navigation

API Kaloom - README

Status do Projeto GitHub last commit License: MIT Versão

CSharp .NET ASP.NET EF EF EF

Esse projeto é uma Application Programming Interface (API) em desenvolvimento da rede social Kaloom para acesso e persistência de dados de alunos, usuários e intituições Etecs e Fatecs em MySQL, desenvolvida em C# com .NET, ASP.NET Core, Entity Framework Core e FluentValidation. O projeto combina elementos da arquitetura MVC do ASP.NET com a Clean Architecture para manter uma estrutura limpa, organizada e escalável, contendo Controllers, Models, DTOs, Repositories, validações, comunicação entre camadas, tratamento de exceções costumizadas, respostas padronizadas e testes de unidade.

Indice:    Arquiteturas   |    Tecnologias   |    Execução   |    Endpoints   |    Licença

🏛️ Arquiteturas e responsabilidades

Camadas da Clean Architecture:

  • API: contém Controllers que expõem endpoints e Filters que filtram erros;
  • Application: contém casos de uso, SharedValidator para validações compartilhadas do FluentValidation, Factories para fabricar DTOs, Facades para agregar use cases e profiles de mapeamento do AutoMapper;
  • Communication: gerencia os DTOs (Data Transfer Objects) e comunicação;
  • Domain: contém Models, Enums e abstrações de repositórios;
  • Infrastructure: contém implementação de Repositórios para a camada de acesso a dados, Context do banco de dados, Migrations, configurações e seeds;
  • Exceptions: centraliza o controle e padronização de erros.
  • Tests: testes unitários e mocks para testar endpoints.

Essa arquitetura permite separar responsabilidades de forma clara, facilitando manutenção, testes e evolução do código.

🛠️ Tecnologias e Ferramentas Utilizadas

Tipo Tecnologia Descrição
💻 Linguagem C# Alto nível, moderna, orientada a objetos, multiparadigma e tipagem forte/inferida/dinâmica.
⚙️ Frameworks .NET / ASP.NET Core .NET é a plataforma de desenvolvimento e o ASP.NET é um framework para criação de APIs web.
🗃️ ORM Entity Framework Core O EF é um Object-Relational Mapping, técnica para traduzir e executar querys SQL com POO.
🐬 Banco de Dados MySQL Sistema de Gerenciamento de Banco de Dados Relacional para armazenar dados em tabelas.
🔌 Driver EF Pomelo Driver de conexão com banco de dados provedor para o EF Core, feito sobre o MySqlConnector.
✅ Validação FluentValidation Biblioteca para validações de dados recebidos na API.
🔁 Mapper AutoMapper Mapeador objeto-objeto baseado em convenções para mapear DTOs.
🧪 Testes unitários xUnit.net Ferramenta de teste de unidade gratuita e de código aberto para .NET.
🎭 Mock Moq Biblioteca de mocking .NET, usada para criar objetos simulados de dependências, permitindo testar unidades de código isoladamente.
🧰 IDE usada e recomendada Visual Studio 2026 Ambiente de Desenvolvimento Integrado mais abrangente para desenvolvimento .NET.
📦 Package Manager NuGet Gerenciador de pacotes .NET para fazer instalações, atualizações e configurações de bibliotecas.

▶️ Como executar no Visual Studio

📦 Pré-requisitos:

  • Sistema operacional Windows
  • .NET SDK instalado (versão 8.0 ou superior)
  • Visual Studio com o componente ASP.NET e Desenvolvimento Web instalado
  • Tenha o MySQL instalado
  1. Clone o repositório

    git clone https://github.com/kaloom-team/api-kaloom.git
    cd api-kaloom
  2. Abra o projeto no Visual Studio

    • Clique duas vezes no arquivo .sln ou abra pelo Visual Studio via Arquivo > Abrir > Projeto/Solução
  3. Configure a string de conexão

    Coloque seu usuário e senha do MySQL no arquivo appsettings.Development.json:

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=localhost;Database=kaloom;User=root;Password=root;"
      }
    }
  4. Instale a ferramenta dotnet-ef

    dotnet tool install --global dotnet-ef
  5. Execute as migrations

    dotnet ef database update --project Kaloom.Infrastructure

    ou

    cd Kaloom.Infrastructure
    dotnet ef database update
  6. Inicie a aplicação

    • Pressione F5

    ou

    • Clique em Iniciar (Start) para compilar e rodar a API

    ou via CLI

    cd Kaloom.API
    dotnet watch run

    O Swagger irá abrir no navegador se a aplicação estiver sendo executada em ambiente de desenvolvimento.

📡 Endpoints

As entidades Aluno, Usuario, TipoAluno, Etec e Fatec tem os seguintes endpoints base:

Método Rota Descrição
GET /api/entidade Retorna todos os registros
GET /api/entidade/{id} Retorna um registro pelo ID
POST /api/entidade Cria um novo registro
PUT /api/entidade/{id} Atualiza um registro
DELETE /api/entidade/{id} Deleta um registro

🤝 Contribuições

Sinta-se à vontade para abrir Pull Requests com melhorias de código ou Issues com sugestões caso queira contribur ao projeto.

📜 Licença

Este projeto está licenciado sob a licença MIT, veja o arquivo LICENSE para detalhes.


Desenvolvido pela Kaloom
Etec Juscelino Kubitschek de Oliveira - Diadema/SP - 2025

About

API da rede social kaloom para acesso e persistencia de dados no MySQL, feita com C# utilizando .NET, ASP.NET Core e EF Core, estruturada com microserviços monorepo e Clean Architecture.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages