🐿 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.
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!
- 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
Dá uma olhada no repositório principal, meu mano! Especialmente aqui.
Veja os resultados do último teste que rodei:
Pra que isso?! 🤡
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
Não tunei nada, mal implementei o necessário 🤣.
- Início
- Sobre a regra de negócio que retorna 422
- Sobre o README desse projeto
- Quando terminei a rota de extrato
- Começo do fim
- Fiz o teste passar 100% OK mas com uma latência miserável
- Quando terminei os testes com 100% OK e uma latência agradável
- Finalmente
Este projeto está sob licença do MIT - Veja a LICENÇA para mais informações.
Feito com ❤ por Kauê Fraga Rodrigues.