目录
一:定义api入参和返回值
二:生成入参和返回值文件
三:定义rpc参数和返回值
四:生成返回值和参数
五:定义数据库
六:生成数据库文件
今天我们来讲解下如何在Go-Zero下开发一个api接口的具体流程,我们以开发一个用户详情接口为例来说明。
一:定义api入参和返回值
首先定义入参和出参,在user.api里面定义
type ( //用户详情 UserReadRequest { Id int64 `form:"id"` } UserReadResponse { Id int64 `json:"id"` Name string `json:"name"` CreateTime string `json:"create_time"` UpdateTime string `json:"update_time"` } )
二:生成入参和返回值文件
在desc目录下 goctl api go -api user.api -dir ../ --style=goZero --home="../../../../deplo
y/goctl"
三:定义rpc参数和返回值
在pb目录下proto文件中定义
// 详情 message UserReadRequest { int64 Id = 1; } message UserReadResponse { int64 Id = 1; string Name = 2; }
四:生成返回值和参数
goctl rpc protoc usercenter.proto --go_out=../ --go-grpc_out=../ --zrpc_out=../ --style=goZero -m
五:定义数据库
在model/sql目录下生成
CREATE TABLE `admin_use` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户名', `create_time` int unsigned NOT NULL DEFAULT '0' COMMENT '添加时间', `update_time` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '真实姓名', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT;
六:生成数据库文件
goctl model mysql ddl -src ./model/sql/adminuser.sql -dir ./model -c
至此我们的文件定义已经完成,只需要在api模块和rpc模块编写逻辑代码就可以了。