Este projeto é uma solução ASP.NET Core para gerenciamento de pagamentos, estruturada em múltiplas camadas seguindo boas práticas de arquitetura.
- Payments.Api: Camada de apresentação (API REST).
- Payments.Application: Camada de aplicação, responsável pela lógica de negócios e padrões CQRS.
- Payments.Domain: Camada de domínio, contém as entidades e regras de negócio.
- Payments.Infra: Camada de infraestrutura, responsável pelo acesso a dados (EF Core, Npgsql).
src/
Payments.sln
Payments.Api/
Controllers/
Program.cs
appsettings.json
...
Payments.Application/
Commands/
Queries/
CqrsDispatcher.cs
...
Payments.Domain/
Payment.cs
Profile.cs
...
Payments.Infra/
PaymentsDbContext.cs
...
- CQRS (Command Query Responsibility Segregation): Separação entre comandos (escrita) e queries (leitura), implementado em
Payments.Application
. - Entity Framework Core: Utilizado para persistência de dados, configurado em
PaymentsDbContext
. - Injeção de Dependências: Utilizada para desacoplamento entre camadas, configurada em
Program.cs
. - API REST: Controladores em
Controllers
expõem endpoints HTTP.
-
Pré-requisitos
- .NET 9 SDK
- Banco de dados PostgreSQL configurado
-
Configuração
- Edite o arquivo
appsettings.json
com a string de conexão do banco de dados.
- Edite o arquivo
-
Restaurar Dependências
dotnet restore src/Payments.sln
-
Build
dotnet build src/Payments.sln
-
Executar a API
dotnet run --project src/Payments.Api/Payments.Api.csproj
-
Testar Endpoints
- Acesse
http://localhost:5054
(ou porta configurada) para utilizar a API.
- Acesse
Para gerenciar o esquema do banco de dados, o projeto utiliza o Entity Framework Core Migrations.
Quando houver alterações nos modelos de domínio (em Payments.Domain
), é necessário criar uma nova migração para refletir essas mudanças no banco de dados.
dotnet ef migrations add <NomeDaMigracao> --project src/Payments.Infra --startup-project src/Payments.Api
Substitua <NomeDaMigracao>
por um nome descritivo (ex: AddUserRoles
).
Para aplicar as migrações pendentes e atualizar o esquema do banco de dados:
dotnet ef database update --project src/Payments.Infra --startup-project src/Payments.Api
Para limpar e recriar o banco de dados do zero, execute os seguintes comandos.
Aviso: O comando a seguir excluirá todos os dados do banco de dados.
-
Remover o banco de dados:
dotnet ef database drop --project src/Payments.Infra --startup-project src/Payments.Api --force
-
Aplicar todas as migrações novamente:
dotnet ef database update --project src/Payments.Infra --startup-project src/Payments.Api
- Os comandos e queries estão organizados em pastas separadas dentro de
Payments.Application
ePayments.Application/Queries
. - O projeto utiliza boas práticas de separação de responsabilidades, facilitando manutenção e testes.