一键生成通用的微服务(gRPC)项目代码,让你的开发效率翻倍提升
在使用 protobuf 的微服务中,通常添加新 rpc 方法的步骤:
- (1) 通常先在 proto 文件定义 rpc 方法和 message
- (2) 根据 proto 文件生成 pb.go 文件
- (3) 实现 server 端的 rpc 方法接口,在实现 rpc 方法函数里面编写业务逻辑代码
- (4) 使用第三方工具或写一个调用 rpc 方法的客户端来测试
本文介绍的生成代码工具 sponge,可以极大简化这些步骤,只需在 proto 文件定义 rpc 方法和 message,然后在生成的模板文件填写业务逻辑代码这两个步骤,其他步骤的代码都已经生成了。
生成通用微服务(grpc)项目代码
和批量添加任意rpc方法代码
这两个功能已经集成在生成代码工具 sponge 中。
安装完 sponge 后,执行命令打开 UI 界面:
sponge run
快速创建微服务项目#
创建微服务前先准备一个 proto 文件,user.proto 文件内容如下:
syntax = "proto3";
package api.edusys.v1;
option go_package = "edusys/api/user/v1;v1";
service user {
rpc Register(RegisterRequest) returns (RegisterReply) {}
rpc Login(LoginRequest) returns (LoginReply) {}
}
message RegisterRequest {
string email = 1;
string password = 2;
}
message RegisterReply {
int64 id = 1;
}
message LoginRequest {
string email = 1;
string password = 2;
}
message LoginReply {
string token = 1;
}
进入 sponge 的 UI 界面,点击左边菜单栏【protobuf】–> 【RPC 类型】–>【创建 RPC 项目】,填写一些参数就可以生成通用的微服务项目代码了。
微服务框架使用 grpc,还包含了常用的服务治理功能代码,构建部署脚本等,使用什么数据库由自己选择。
生成微服务项目代码的详细演示过程请看 B 站视频 www.bilibili.com/video/BV1WY4y1X7z...
切换到 user 目录,执行命令:
# 生成pb.go代码,生成模板代码,生成测试代码
make proto
# 打开internal/service/user.go,这是生成的模板代码,里面有一行提示填写业务逻辑代码的panic代码,在这里填写业务逻辑
# 编译和启动user服务
make run
使用 goland IDE 打开 user 服务代码,进入 internal/service 目录下,打开 user_client_test.go
文件,可以在这里测试 rpc 方法,类似在 swagger 界面测试接口,测试前填写参数,点击绿色按钮进行测试。
批量添加任意 api 接口代码嵌入到微服务#
打开文件 api/user/v1/user.proto
,添加修改密码和登出 2 个 rpc 方法,也可以在新创建的 proto 文件添加 rpc 方法。
rpc ChangePassword(ChangePasswordRequest) returns (ChangeRegisterReply) {}
rpc Logout(LogoutRequest) returns (LogoutReply) {}
// --------------------------------------
message ChangePasswordRequest {
int64 id = 1;
string password = 2;
}
message ChangeRegisterReply {
}
message LogoutRequest {
int64 id = 1;
}
message LogoutReply {
}
添加 rpc 方法的详细演示过程请看 B 站视频 www.bilibili.com/video/BV1Yo4y1q76...
切换到 user 服务目录,执行命令:
# 生成pb.go代码,生成模板代码,生成测试代码
make proto
# 进入internal/service/目录,打开带有日期后缀的文件,把新添加的接口代码复制到user.go文件中,去掉panic代码提示代码,并填写业务逻辑
# 清除带有日期后缀文件
make clean
# 编译和启动user服务
make run
使用 goland IDE,进入 internal/service 目录下,打开 user_client_test.go
文件,可以在这里测试新添加的 rpc 方法了。
这是根据上面步骤生成的完整源码: wwzy.lanzoub.com/iACyp0t2lo3a
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: