Transfer API
API criada com o propósito de prover o gerenciamento das transferências entre contas
de um banco digital.
A arquitetura da aplicação visa aplicar os conceitos do Domain-Driver Design,
Eric Evans, e da Hexagonal Architecture, de Alistair Cockburn.
Requerimentos / Dependências
A aplicação, feita em Go, depende do próprio módulo, e de pelo
menos uma instância MongoDB.
A mesma é distribuída através de containers Docker.
Todas as dependências de pacotes estão relacionadas em go.mod, que é utilizado para
gerenciamento das mesmas.
Para baixa-las, com Go instalado na sua máquina:
$ go mod download
Como usar
A aplicação possui distribuição via Docker, e possui um arquivo
docker-compose, sendo este o modo mais fácil de executa-la
localmente.
Além disso, possui uma especificação OpenAPI 3
através do arquivo openapi.yml.
A mesma é gerenciada via variáveis de ambiente, segue abaixo a tabela:
Nome |
Descrição |
APP_PORT |
Porta a ser escutada pela aplicação para novas requisições |
APP_LOG_LEVEL |
Nível de log estruturado da aplicação |
APP_DOCUMENT_DB_HOST |
Host da instância do MongoDB |
APP_DOCUMENT_DB_PORT |
Porta da instância do MongoDB |
APP_DOCUMENT_DB_USERNAME |
Usuário da instância do MongoDB |
APP_DOCUMENT_DB_SECRET |
Senha da instância do MongoDB |
APP_DOCUMENT_DB_NAME |
Nome do banco default da instância do MongoDB |
APP_JWT_GATEKEEPER_SECRET |
Segredo de geração do token JWT |
APP_JWT_GATEKEEPER_ISSUER |
Emissor do token JWT |
Docker-Compose
Para executar via docker-compose
$ docker-compose up --build -d
Licença
A aplicação está sobe a licença MIT
Créditos
Agradecimento em especial a todos os autores das bibliotecas de terceiros utilizadas, e
citadas acima.
E aos conteúdos, e seus autores, em que me baseei para a construção dessa aplicação:
Videos
Artigos