一键生成通用的微服务(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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
11
粉丝
4
喜欢
22
收藏
21
排名:1245
访问:3464
私信
所有博文
社区赞助商