Esquilo Aniquilador

🐿 Minha API aniquiladora pra segunda edição da Rinha de Backend em Go. A Rinha de Backend é uma competição muito divertida e, para mim, toda edição é/será de muito aprendizado. Participa aí!
[!TIP]
Veja o repositório da Rinha. O prazo final é 10/03/2024.
🗺 O que foi implementado
Inicialmente:
- Rota
POST /clientes/:id/transacoes
com banco de dados em memória (para testes e validação das regras de negócio)
- Rota
GET /clientes/:id/extrato
com banco de dados em memória (só faltou fazer a ordenação decrescente por data/hora)
Posteriormente/atualmente:
- Rota
GET /clientes/:id/extrato
com banco de dados PostgreSQL
- Rota
POST /clientes/:id/transacoes
com Postgres
A imagem do Dockerfile
está disponível no Docker Hub: kauefraga/esquilo-aniquilador-api.
Minha submissão para a Rinha de Backend está aqui.
[!IMPORTANT]
Uma pessoa muito importante na conclusão desse projeto foi o Shwuy (@sxhk0), que me ajudou a chegar no 100% OK e me acompanhou no processo!
⬇ Como instalar e botar pra fu...ncionar
- Clone o repositório
- Rode
go run cmd/api/main.go
O segundo passo já deve instalar as dependências. Caso contrário, rode go mod download
e execute a segunda instrução de novo.
# (1)
git clone https://github.com/kauefraga/esquilo-aniquilador.git
cd esquilo-aniquilador
# (2)
go run cmd/api/main.go
# (3?)
go mod download
🧪 Como rodar os testes
Testes Gatling
Dá uma olhada no repositório principal, meu mano! Especialmente aqui.
Veja os resultados do último teste que rodei:

Testes unitários
Pra que isso?! 🤡
Testes para verificar as regras de negócio (manual mesmo)
Requisitos: Visual Studio Code.
- Instale a extensão REST Client
- Abra o arquivo
requests.http
- Certifique-se de que o banco de dados e a API estejam rodando
- Clique em
Send Request
, faça isso para cada requisição descrita/que aparece
# (1)
code --install-extension humao.rest-client
# (2)
code . # Esteja dentro do diretório esquilo-aniquilador (raiz), que você clonou
🧙♂️ O que tunei e como
Não tunei nada, mal implementei o necessário 🤣.
🌳 Interações
Redes Sociais
📝 Licença
Este projeto está sob licença do MIT - Veja a LICENÇA para mais informações.
Feito com ❤ por Kauê Fraga Rodrigues.