Go-Zero减少了重复开发,让程序员更关注到业务设计与逻辑代码实现上。
开发流程
前期准备
- goctl环境准备
- 新建工程
- 创建项目目录(可参考下方项目目录结构)
设计
- 数据库设计
- 业务设计
开发
API层
- 编写.api文件
- 代码生成
- 中间件实现
- Config添加RPC配置
- ServiceContext添加RPC
- 调用RPC接口实现相关逻辑
RPC层
- 编写.proto文件
- 代码生成
- Config添加数据库链接
- ServiceContext添加数据库交互类
- 调用数据库交互、完成数据处理
ORM数据库层
- 编写数据库结构表
- 编写数据库访问事务
Goctl 环境
goctl是go-zero框架的代码生成工具,可以通过goctl生成API、RPC、Model等代码。
- 安装goctl
- protoc 下载地址
安装protoc-gen-go
项目结构参考
开发实用脚本
生成API代码
合并API文件
在项目体量较大时,我们可能会有很多的API文件,我们可以通过脚本将这些API文件合并成一个文件,然后通过goctl生成代码。
通过拆分api文件以避免出现一个文件上千行的代码的情况。
添加script/merge_api_files.sh
文件
Goctl 模板
参考:https://go-zero.dev/docs/tutorials/customization/template
实现统一响应结构体
新建leaper-one/pkg
包,添加https/response/response.go
如果本地没有
~/.goctl/${goctl版本号}/api/handler.tpl
文件,可以通过模板初始化命令goctl template init进行初始化
Windows则打开
编辑为如下
API IDL
总结
Go-Zero框架的引入,使得2SOMEone的后端开发更加高效,减少了重复开发,让我们更关注到业务设计与逻辑代码实现上。