Skip to content

Implementação de uma API Mínima seguindo os princípios da Clean Architecture. (Implementation of a Minimal API following the principles of Clean Architecture.)

License

Notifications You must be signed in to change notification settings

Pedro-Lucas-OKB/minimal-api-with-clean-architecture

Repository files navigation

Minimal API com Clean Architecture

C# ASP .NET SQLite Docker

Minimal API

É uma abordagem simplificada para implementar APIs de HTTP, com foco na diminuição de código e de configuração. Com poucas linhas de código, é possível criar endpoints REST funcionais. (Minimal API)

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

app.MapGet("/", () => "Hello World");

app.Run();

Clean Architecture

A Clean Architecture é um padrão arquitetural de software baseado no princípio da separação de interesses, onde a aplicação é dividida em diferentes camadas, cada uma com sua preocupação. O objetivo é proporcionar aos desenvolvedores uma forma melhor de organizar o código, separando as regras de negócio, facilitando o desenvolvimento e a manutenção do código.

The Clean Architecture by Robert C. Martin : The Clean Architecture by Robert C. Martin

Padrões Utilizados

  • Command and Query Responsibility Segregation (CQRS)
  • Mediator
  • Repository
  • Unit of Work

Como está implementada a dependência entre os projetos nessa solução?

Diagrama de camadas : Minimal API with Clean Architecture

Testando o Projeto

A API está documentada com a utilização do Swagger. Ao acessar a página, é possivel testar todas as requisições HTTP.

Docker

Execute o comando docker compose up --build e acesse http://localhost:8080/swagger para testar a API.

Também é possível baixar a imagem com o comando docker pull pedrolucas5100/minimal-api-with-clean-architecture e criar seus próprios containers.

Testando Localmente

Pré-requisitos:

Packages utilizados

Os comandos dotnet build e dotnet run restauram as dependências automaticamente.

  • Application
    • AutoMapper : dotnet add package AutoMapper --version 13.0.1
    • FluentValidation : dotnet add package FluentValidation.DependencyInjectionExtensions --version 11.9.0
    • MediatR : dotnet add package MediatR --version 12.2.0
  • Persistence
    • SQLite : dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0.4
  • API
    • OpenAPI : dotnet add package Microsoft.AspNetCore.OpenApi --version 8.0.4
    • EntityFrameworkCore.Design : dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0.0
    • Swagger : dotnet add package Swashbuckle.AspNetCore --version 6.4.0

Build

cd minimal-api-with-clean-architecture/
dotnet build

Run

cd src/Presentation/CleanArchitecture.API
dotnet run

Acesse: https://localhost:7054/swagger ou http://localhost:5269/swagger para utilizar o Swagger e testar a API.

Pode ser necessário autorizar o uso de HTTPS no ambiente local. Para isso, ative a confiança no cetificado https do dotnet com o seguinte comando: dotnet dev-certs https --trust

Referências

Licença

License

About

Implementação de uma API Mínima seguindo os princípios da Clean Architecture. (Implementation of a Minimal API following the principles of Clean Architecture.)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published