Microservice API applying clean architecture, security, OpenApi, tracing, etc
Golang, Docker, Make, Swag tool
- Architecture
- Clean architecture (adapters and ports)
- Custom Messages and Errors
- Pagination and Ordering
- DB Migrator (scripts)
- Go 1.24
- Libraries
- Web: Fiber
- ORM: Gorm
- Security: JWT
- Validations: Go Playground Validator
- Unit Test: Testify
- DB: Postgres
- Tracing: Opentelemetry
- Test: Testcontainers
- OpenAPI: Fiber Swagger
- Environment: Godot
- Distributed tracing
- OpenTelemetry and Jaeger
- Swagger
- Swaggo & Fiber Swagger
- Auditory (using Gorm)
- Database
- Postgres
- Testcontainers
# SQL
DATABASE_URL=postgres://admin:admin@localhost:5432/db_users
SHOW_SQL_INFO=false
# Jaeger tracing endpoint
TRACING_HOST=localhost:4318
# Swagger
SWAGGER_ENABLED=true
# Security JWT
SECURITY_ENABLED=true
JWT_DURATION=300
JWT_SECRET_KEY=UUID
JWT_ISSUER=https://acme.com
JWT_AUDIENCE=https://acme.com
- Executing
make help
all the available commands will be listed. - Also the standard Go commands could be used, like
go run main.go
- Create users POST: /users
- Get users GET: /users
- Login POST: /users/login