API para gestão de usuários, carteiras digitais e transações financeiras.
- Cadastro e autenticação de usuários (SignUp/SignIn)
- Criação e gerenciamento de carteiras digitais
- Depósito, saque, transferência entre carteiras
- Consulta de saldo e extrato de movimentações
- Habilitar/desabilitar carteiras
Para facilitar os testes da API foi feita a hospedagem da mesma no render estando assim On-line e pronta para uso
para ir fazendo as suas requisições na API basta acessar o endereço logo abaixo
pode ter acesso a exemplos de requisições no arquivo FinanceAPI.postman_collection.json
que se encontra na raiz do projeto
ou no final deste README.
https://fianceapi.onrender.com/api
Nota: No plano free do render a API é posta em estado de Sleep depois de 5 minutos em receber requesições e volta a estar up depois de receber alguma requesição
- Clone o repositório e acesse a pasta do projeto.
- Execute:
docker-compose up --build
or Cria um arquivo com o nome .env e passa todas as variaveis de ambiente solicitadas no arquivo docker-compose de produção e depois é só rodar
docker compose -f docker-compose.prod.yml up -d
- A API estará disponível em:
http://localhost:5000
(ajuste a porta conforme necessário) - O banco de dados PostgreSQL estará disponível na porta 5432.
Suba o banco de dados:
docker run -d --name PostgresSQL -e POSTGRESQL_USERNAME=mariogomes -e POSTGRESQL_PASSWORD=1qaz2wsx -e POSTGRESQL_DATABASE=finance -p 5432:5432 bitnami/postgresql:latest
Construa e rode a API:
docker build -f src/Bckend/Finance.API/Dockerfile -t finance_api .
docker run -d --name finance_api --link PostgresSQL:db -p 5000:80 finance_api
- Instale o .NET 7.0 SDK e o PostgreSQL.
- Configure a string de conexão no
appsettings.Development.json
:"ConnectionStrings": { "DefaultConnection": "Host=localhost;Port=5432;Database=finance;Username=mariogomes;Password=1qaz2wsx" }
- Restaure os pacotes e rode a aplicação:
dotnet restore dotnet run --project src/Bckend/Finance.API/Finance.API.csproj
POST /api/Auth/SingUp
Content-Type: application/json
{
"name": "Mário Gomes",
"email": "[email protected]",
"password": "!qaz2wsxQAZ"
}
POST /api/Auth/SingIn
Content-Type: application/json
{
"email": "[email protected]",
"password": "!qaz2wsxQAZ"
}
GET /api/User/fetch?search=Mário
Authorization: Bearer <token>
POST /api/Wallet/Create
Authorization: Bearer <token>
Content-Type: application/json
{
"balance": 0,
"currency": "AOA"
}
POST /api/Wallet/deposit
Authorization: Bearer <token>
Content-Type: application/json
{
"amount": 20000,
"description": "Deposito inicial",
"currency": "AOA"
}
POST /api/Wallet/withdraw
Authorization: Bearer <token>
Content-Type: application/json
{
"amount": 2000,
"description": "Levantamento em caixa eletronico",
"currency": "BRL"
}
POST /api/Wallet/Transfer
Authorization: Bearer <token>
Content-Type: application/json
{
"receiverWalletId": "<id-da-carteira-destino>",
"amount": 3000,
"description": "Tranferencia para elisa",
"currency": "AOA"
}
GET /api/Wallet/Movements?currency=AOA&startDate=2025-07-06&endDate=2025-07-10&page=1&pageSize=10
Authorization: Bearer <token>
GET /api/Wallet/CheckBalance?currency=AOA
Authorization: Bearer <token>
PUT /api/Wallet/Disabled?currency=AOA
Authorization: Bearer <token>
PUT /api/Wallet/Enabled?currency=AOA
Authorization: Bearer <token>
Para mais exemplos, consulte o arquivo
FinanceAPI.postman_collection.json
.