Go-Zero微服务框架下开发接口流程

目录

一:定义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模块编写逻辑代码就可以了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值