Skip to content

adilsonsds/payments-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Payments API

Este projeto é uma solução ASP.NET Core para gerenciamento de pagamentos, estruturada em múltiplas camadas seguindo boas práticas de arquitetura.

Estrutura do Projeto

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

Arquitetura

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

Como Executar

  1. Pré-requisitos

    • .NET 9 SDK
    • Banco de dados PostgreSQL configurado
  2. Configuração

  3. Restaurar Dependências

    dotnet restore src/Payments.sln
  4. Build

    dotnet build src/Payments.sln
  5. Executar a API

    dotnet run --project src/Payments.Api/Payments.Api.csproj
  6. Testar Endpoints

    • Acesse http://localhost:5054 (ou porta configurada) para utilizar a API.

Migrations de Banco de Dados

Para gerenciar o esquema do banco de dados, o projeto utiliza o Entity Framework Core Migrations.

Criando uma Nova Migração

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

Aplicando Migrações

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

Recriando o Banco de Dados

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.

  1. Remover o banco de dados:

    dotnet ef database drop --project src/Payments.Infra --startup-project src/Payments.Api --force
  2. Aplicar todas as migrações novamente:

    dotnet ef database update --project src/Payments.Infra --startup-project src/Payments.Api

Observações


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published