O projeto consiste em uma API de transferência entre contas internas de um banco digital que usa o formato JSON para leitura e escrita.
id
name
cpf
secret
balance
created_at
cpf
secret
id
account_origin_id
account_destination_id
amount
created_at
Metódo | URL | Descrição | Autenticação |
---|---|---|---|
GET | /accounts | retorna a lista de contas no banco | Não |
GET | /accounts/{account_id}/balance | retorna o saldo da conta no banco | Não |
POST | /accounts | cria uma conta no banco | Não |
POST | /login | autentica a conta no banco e retorna o token JWT | Não |
GET | /transfers | retorna as transferências da conta no banco | Sim |
POST | /transfers | transfere de uma conta para outra no banco | Sim |
Uma documentação online completa das rotas da API e dos corpos de requisição e resposta pode ser vista em Postman.
O projeto foi estruturado em containers e para o deploy são necessárias as dependências:
O projeto faz uso de variáveis de ambiente que são definidas no arquivo .env
:
BUILD_TARGET="development"
DEBUG_MODE="false"
TOKEN_KEY="gophers"
SERVER_ADDRESS="8080"
POSTGRES_PASSWORD="root"
POSTGRES_USER="postgres"
POSTGRES_PORT="5432"
POSTGRES_HOST="db"
POSTGRES_DB=""
É o target para o build multi-stage do docker-compose. "development" faz live-reload do código fonte, "production" faz compilação do binário estático.
É o modo que será utilizado no ambiente. "true" faz uso do modo Debug que mostra as consultas SQL, "false" faz uso do modo Silent sem retorno das consultas.
É a chave salt
usada para gerar a criptografia do token JWT.
É a porta na qual o servidor será disponibilizado.
São as configurações para o DSN do banco de dados: usuário, senha, host, porta, database.
Para iniciar a API localmente com as dependências já instaladas use o comando:
make run
Para ver os logs da API use o comando:
make logs
Para desligar a API use o comando:
make stop
Para fazer requisições e testar a API use alguma ferramenta como o HTTPie ou Postman. A documentação já conta com as collections para os testes.