go-boilerplate
Golang API Service boilerplate using best practices of Clean Architecture.
Responsibility: CRUD and Login Users with JWT.
Dependencies
- Gin-Gonic
- Swaggo
- go-redis
- GORM (MySQL)
- Golang-Migrate
- Snowflake
- OpenTelemetry
- JWT-Go
- Crypto
Documentation & Routes
Swagger
http://localhost:8000/auth/swagger/index.html
Jaeger UI
http://0.0.0.0:16686/search
On Error
SQL
Compose Stack
- API REST
- MySQL
- Redis
- Jaeger
Execution / Compilation
Set Env. variables of .env-sample:
Compile with:
make run
Update Swagger Doc:
make doc
Tests
make test
Path's Organization
Clean Arch
-
assets: static files
-
cmd: binaries entrypoint
-
internal: private packages
-
configs: env. variables
-
usecase: business logical/rules
-
delivery: delivery layer -> http, grpc, messaging
-
entity: entities / schemas
-
repository: storage operations, database interface
-
service: external services call's
-
pkg: public packages
-
docs: Swagger Documentation