Este projeto é uma API para gerenciamento de transações e estatísticas, desenvolvida em Go. O desafio foi retirado do repositório rafaellins-itau/desafio-itau-vaga-99-junior.
api/: Contém as rotas da API.config/: Carrega as variáveis de ambiente.controllers/: Implementa os controladores das rotas.dtos/: Define os Data Transfer Objects (DTOs).docs/: Documentação gerada pelo Swagger.services/: Implementa a lógica de negócios.main.go: Ponto de entrada da aplicação.
- Go 1.23
- Docker
- Docker Compose
-
Clone o repositório:
git clone https://github.com/gabrielalmir/desafio-itau-backend.git cd desafio-itau-backend -
Crie um arquivo
.envcom as variáveis de ambiente necessárias.
-
Construa e inicie os containers:
docker-compose up --build
-
Acesse a aplicação em
http://localhost:8080.
-
Instale as dependências:
go mod download
-
Execute a aplicação:
go run main.go
POST /transacao: Cria uma nova transação.DELETE /transacao: Remove todas as transações.GET /estatistica: Retorna estatísticas das transações.
Os testes estão localizados no diretório services/ e podem ser executados com o seguinte comando:
go test -v ./...Os testes cobrem as seguintes funcionalidades:
TestGetStatistics: Verifica se as estatísticas das transações estão corretas.TestCreateTransaction: Verifica se uma transação é criada corretamente.TestDeleteTransactions: Verifica se todas as transações são removidas corretamente.TestValidateTransaction: Verifica se a validação das transações está correta.TestParseSearchInterval: Verifica se o intervalo de busca é analisado corretamente.
A documentação da API está disponível em http://localhost:8080/swagger/index.html.
Você pode usar o arquivo api.http para testar os endpoints da API.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.