golang命令行工具gtcli,实现了完美集成与结构化的grapi,gin-restful-api开箱即用
admin 阅读: 2024-03-18
后台-插件-广告管理-内容页头部广告(手机) |
关于gtools
golang非常奈斯,gin作为web框架也非常奈斯,但我们在开发过程中,前期搭建会花费大量的时间,且还不尽人意。
为此我集成了gin-restful-api的模板grapi,还有脚手架一键生成项目。
集成相关
- gin
- viper
- zap
- gorm
- …
脚手架使用
- 1)mod及proxy设置(若已执行或不需要请忽略)
- go env -w GO111MODULE=on
- go env -w GOPROXY=https://goproxy.io,direct
- 2)下载安装
- go install github.com/atpuxiner/gtools/gtcli@latest
- 3)创建项目
- gtcli grapi new -p <项目名称> -m <模块名称> -d <目录(不指定则默认.)>
- 4)添加api
- cd到上面创建的项目根目录
- gtcli grapi add -a -v <版本号(不指定则默认v1)>
项目运行
- 1)cd到项目根目录
- 2)初始化相关
- 第三方模块:
- go get -u
- go mod tidy
- swag cmd:
- go install github.com/swaggo/swag/cmd/swag@latest
- 代码格式化:
- go fmt ./...
- swagger:
- swag init
- 第三方模块:
- 3)编译运行
- win:
- go build -o grapi.exe main.go
- ./grapi.exe runserver
- linux:
- go build -o grapi main.go
- ./grapi runserver
- win:
项目结构
- ABD: ABD模式
- A api
- B business
- D datatype
- 调用过程: main.go(initializer) - router(middleware) - api - business - (datatype)
- 结构如下: (命名经过多次修改敲定,简洁易懂,ABD目录贴合避免杂乱无章)└── grapi
├── app (应用)
│ ├── api ├── (api)
│ │ └── v1 │ └── (v1)
│ ├── business ├── (业务)
│ ├── datatype ├── (数据类型)
│ │ ├── entity │ ├── (实体)
│ │ └── model │ └── (模型)
│ ├── initializer ├── (初始化)
│ │ ├── conf │ ├── (配置)
│ │ ├── db │ ├── (数据库)
│ │ ├── logger │ ├── (日志)
│ │ └── redis │ └── (redis)
│ ├── middleware ├── (中间件)
│ ├── router ├── (路由)
│ └── utils └── (utils)
├── cmd (命令目录)
├── config (配置目录)
├── deploy (部署目录)
├── docs (文档目录)
├── log (日志目录)
├── .gitignore
├── go.mod
├── LICENSE
├── main.go
└── README.md
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |