Servicio de ejemplo para capacitación Go
Esta aplicación consulta periódicamente el precio de criptoactivos a una API externa, y calcula el valor total de una billetera crypto en cada request.
La composición de las billeteras se almacena en PostgreSQL.
La aplicación está diseñada para ser desplegada como microservicio interno. Es decir, no expuesta directamente a usuarios finales sino a través de otro sistema o un API gateway: no realiza autenticación ni autorización de requests.
Iniciar DB
docker-compose up db
si hubiera que reiniciarla desde 0, ejecutar previamente docker-compose down
.
Build de la app:
make build
Ejecutar:
./mtz-crypto-service
Luego, acceder a http://localhost:8000/wallet/value?wallet=wallet1
make test
- HTTP Server: gin
- Cache en memoria: go-cache
- Configuración: viper
- Acceso a base de datos: gorm
- Métricas: go-gin-prometheus
- Logging: zap
- Arbitrary-precision fixed-point decimal numbers: decimal
- Tests automáticos y mocks: testify
- Generación de código de mocks: mockery
- HTTP Benchmarking tool: h2load
- Linting:
golangci-lint
- Docker y Docker compose
- Instalación de Go
- Visual Studio Code (IDE)
- Instalación de Docker
- Instalación de Docker Compose
- VSCode Go extension
- Documentación de Go
- pkg.go.dev
- Gitlab CI config
- Clase 1: commit inicial
- Clases 2 y posteriores: https://github.com/matbarofex/mtz-crypto/pulls?q=is%3Apr+is%3Aclosed+label%3Aclases