golang命令行工具gtcli,实现了完美集成与结构化的grapi,gin-restful-api开箱即用

关于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 <api名称> -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
项目结构
  • 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
    
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值