Go-Clean-Architecture-REST-API
Go-Clean-Architecture-REST-API copied to clipboard
Golang Clean Architecture REST API example
Golang Clean Architecture REST API example 🚀
👨💻 Full list what has been used:
- echo - Web framework
- sqlx - Extensions to database/sql.
- pgx - PostgreSQL driver and toolkit for Go
- viper - Go configuration with fangs
- go-redis - Type-safe Redis client for Golang
- zap - Logger
- validator - Go Struct and Field validation
- jwt-go - JSON Web Tokens (JWT)
- uuid - UUID
- migrate - Database migrations. CLI and Golang library.
- minio-go - AWS S3 MinIO Client SDK for Go
- bluemonday - HTML sanitizer
- swag - Swagger
- testify - Testing toolkit
- gomock - Mocking framework
- CompileDaemon - Compile daemon for Go
- Docker - Docker
Recomendation for local development most comfortable usage:
make local // run all containers
make run // it's easier way to attach debugger or rebuild/rerun project
🙌👨💻🚀 Docker-compose files:
docker-compose.local.yml - run postgresql, redis, aws, prometheus, grafana containrs
docker-compose.dev.yml - run docker development environment
docker-compose.delve.yml run development environment with delve debug
Docker development usage:
make docker
Local development usage:
make local
make run
SWAGGER UI:
https://localhost:5000/swagger/index.html
Jaeger UI:
http://localhost:16686
Prometheus UI:
http://localhost:9090
Grafana UI:
http://localhost:3000