Clean Architecture using Golang with Gin framework
- Gin is a web framework written in Go (Golang). It features a martini-like API with performance that is up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin.
- JWT A go (or 'golang' for search engine friendliness) implementation of JSON Web Tokens.
- GORM with PostgresSQLThe fantastic ORM library for Golang aims to be developer friendly.
- Wire is a code generation tool that automates connecting components using dependency injection.
- Viper is a complete configuration solution for Go applications including 12-Factor apps. It is designed to work within an application, and can handle all types of configuration needs and formats.
- swag converts Go annotations to Swagger Documentation 2.0 with gin-swagger and swaggo files
go-gin-clean-arch project, follow these steps:
# Navigate into the project cd ./go-gin-clean-arch # Install dependencies make deps # Generate wire_gen.go for dependency injection # Please make sure you are export the env for GOPATH make wire # Run the project in Development Mode make run
➔ make help build Compile the code, build Executable File run Start application test Run tests test-coverage Run tests and generate coverage file deps Install dependencies deps-cleancache Clear cache in Go module wire Generate wire_gen.go swag Generate swagger docs help Display this help screen
In the project directory, you can call:
For getting status page
For generating a JWT
For getting all of users
For getting user by ID
For creating new user
For removing existing user
For updating existing user