關于gtools
golang非常奈斯,gin作為web框架也非常奈斯,但我們在開發過程中,前期搭建會花費大量的時間,且還不盡人意。
為此我集成了gin-restful-api的模板gin-layout,還有腳手架一鍵生成項目。
集成相關
- gin
- viper
- zap
- gorm
- …
腳手架使用
- go get -u github.com/atpuxiner/gtools/gtcli
- go install github.com/atpuxiner/gtools/gtcli
- gtcli gin -p <項目名稱> -m <模塊名稱> -d <目錄(不指定則默認當前)>
項目啟動
- 1)cd 到項目根目錄
- 2)初始化相關
- 第三方模塊
go get -u
go mod tidy
- swagger
- swag init
- 第三方模塊
- 3)編譯啟動
- win:
go build -o gin-layout.exe main.go
./gin-layout.exe runserver
- linux:
go build -o gin-layout main.go
./gin-layout runserver
- win:
項目結構
- ABD:ABD模式
- A api
- B business
- D datatype
- 調用過程:main.go(initializer) - router(middleware) - api - business - (datatype)
- 項目結構詳情(命名經過多次修改敲定,簡潔易懂,ABD目錄貼合避免雜亂無章)
└── gin-layout├── app (應用)│ ├── api (api)│ │ └── v1 - (v1版本)│ ├── business (業務)│ ├── datatype (數據類型)│ │ ├── entity - (實體)│ │ ├── model - (模型)│ ├── initializer (初始化)│ │ ├── conf - (配置)│ │ ├── db - (數據庫)│ │ ├── logger - (日志)│ │ └── redis - (redis)│ ├── middleware (中間件)│ ├── router (路由)│ └── utils (公共)├── cmd (命令目錄)├── config (配置目錄)├── deploy (部署目錄)├── docs (文檔目錄)├── log (日志目錄)├── .gitignore├── go.mod├── LICENSE├── main.go└── README.md