Skip to content

felipeagger/go-boilerplate

Repository files navigation

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

Print of Swagger

Jaeger UI http://0.0.0.0:16686/search

Print of Jaeger

On Error Print of Jaeger

SQL Print of Jaeger

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 Clean Representation

  • 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

About

Golang service boilerplate using best practices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published