Go Gin Clean Arch
Golang REST API service with Gin framework, Wire for dependency injection, integrating with GORM for ORM libray, Viper for configuration and Swag for creating Swagger documentation by applying clean architecture
Install / Use
npx skills add thnkrn/go-gin-clean-archInstalls into whichever agent you are using.
README
Clean Architecture using Golang with Gin framework
Template Structure
- 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
Using go-gin-clean-arch project
To use 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
Additional commands:
➔ 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
Available Endpoint
In the project directory, you can call:
GET /
For getting status page
POST /login
For generating a JWT
GET /api/users
For getting all of users
GET /api/users/:id
For getting user by ID
POST /api/users
For creating new user
DELETE /api/users/:id
For removing existing user
PUT /api/users/:id
For updating existing user
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.6kCommit, push, and open a PR
