status: 🚧 api-bank-transfers 🚀 em construção.. 🚧
API, que responde JSON, de transferencia entre contas Internas de um banco digital.
Antes de começar, você precisará ter as seguintes ferramentas instaladas em sua máquina:
Para rodar via docker
Para rodar Local
Além disso, é bom ter um editor para trabalhar com o código como: VSCode
Deverá criar o banco de dados com as configurações informadas no arquivo .env
DB_USER, DB_NAME, DB_PASS
# Clone este repositório
$ git clone https://github.com/WallaceMachado/api-bank-transfers.git
# Acesse a pasta do projeto no terminal / cmd
$ cd api-bank-transfers
# Instale as dependências e rode o projeto
$ go run main.go
# Server is running
# Clone este repositório
$ git clone https://github.com/WallaceMachado/api-bank-transfers.git
# Acesse a pasta do projeto no terminal / cmd
$ cd api-bank-transfers
# Instale as dependências e rode o projeto
$ docker-compose up --build
Após clonar o repositório, renomeie o .env.example
no diretório raiz para .env
e atualize com suas configurações.
Chave | Descrição | Predefinição |
---|---|---|
PORT | Número da porta em que o aplicativo será executado. | 5000 |
DB_HOST | Host Postgres. | pg |
DB_PORT | Porta Postgres. | 5432 |
DB_USER | Usuário Postgres. | - |
DB_NAME | Nome do banco de dados do aplicativo. | - |
DB_PASS | Senha do Postgres. | - |
DB_TYPE | tipo do banco de dados. | postgres |
SECRET_KEY_JWT | Uma string alfanumérica aleatória. Usado para criar tokens assinados. | - |
Para contrele de versão, foi inserida a versão v1
após o host
GET http://localhost:5000/api/v1/transfers
Rotas | HTTP Method | Params | Descrição | Auth Method |
---|---|---|---|---|
/accounts | POST | Body: name , cpf , secret e balance |
Crie uma nova conta | ❌ |
/accounts | GET | - | Recupere uma lista com todas as contas | ❌ |
/accounts/:account_id/balance | GET | Params: account_id |
Consulte o saldo de uma conta | ❌ |
/login | POST | - | Faça login | ❌ |
/transfers | POST | Body: account_destination_id e amount |
Faça uma transferência bancária | Bearer |
/transfers | GET | - | Consulte as transferências de uma conta | Bearer |
Rotas com Bearer como método de autenticação esperam um cabeçalho de autorização. Consulte a seção Bearer Token para mais informações.
POST /accounts
Corpo da requisição:
{
"name": "teste",
"cpf": "31410884031",
"secret": "123456",
"balance": 1000
}
POST /login
Corpo da requisição:
{
"cpf": "31410884031",
"secret": "123456"
}
POST /transfers
Corpo da requisição:
{
"account_destination_id":"4b808c0b-5822-410d-a67d-d87241f03e9d",
"amount":100
}
Algumas rotas esperam um Bearer Token em um cabeçalho de autorização.
Você pode ver essas rotas na seção de Rotas.
GET http://localhost:5000/api/v1/transfers Authorization: Bearer <token>
Para obter este token, você só precisa se autenticar por meio da rota
/login
e ela retornará a chave do token com um Bearer Token válido
Para executar os testes :
Altere a varável de ambente DB_HOST para localhost
# Acesse a pasta do projeto no terminal / cmd
$ cd api-bank-transfers
# Rode os testes
$ go test ./...
# Acesse a pasta do projeto no terminal / cmd
$ cd api-bank-transfers
# Instale as dependências e rode o projeto
$ docker-compose up --build
# Pegar o CONTNAINER ID da imagem github.com/wallacemachado/api-bank-transfers
$ docker ps
# Exemplo de retorno:
# CONTAINER ID IMAGE COMMAND
# xxxxxxxxxxxxxxx github.com/wallacemachado/api-bank-transfers "go run main.go" 0.0.0.0:5003->5000/tcp, :::5003->5003 ....
# yyyyyyyyyyyyyyy github.com/wallacemachado/api-bank-transfers-db "docker-entrypoint.s…" 0.0.0.0:5432->5432/tcp, :::5432->5432 ....
# acesse o contaniner
$ docker exec -it <CONTAINER ID> /bin/bash
# Exemplo:
# docker exec -it xxxxxxxxxxxxxxx /bin/bash
#root@xxxxxxxxxxxxxxx:/go/src/app#
#rode os testes
$ go test ./...
Feito com ❤️ por Wallace Machado 🚀🏽 Entre em contato!