写点什么

一键生成通用的微服务 (gRPC) 项目代码,让你的开发效率翻倍提升

作者:vison
  • 2023-04-26
    广东
  • 本文字数:1439 字

    阅读完需:约 5 分钟

一键生成通用的微服务(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 站视频 https://www.bilibili.com/video/BV1WY4y1X7zH/



切换到 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 站视频 https://www.bilibili.com/video/BV1Yo4y1q76o/


切换到 user 服务目录,执行命令:


# 生成pb.go代码,生成模板代码,生成测试代码make proto
# 进入internal/service/目录,打开带有日期后缀的文件,把新添加的接口代码复制到user.go文件中,去掉panic代码提示代码,并填写业务逻辑
# 清除带有日期后缀文件make clean
# 编译和启动user服务make run
复制代码


使用 goland IDE,进入 internal/service 目录下,打开user_client_test.go文件,可以在这里测试新添加的 rpc 方法了。



这是根据上面步骤生成的完整源码: https://wwzy.lanzoub.com/iACyp0t2lo3a


用户头像

vison

关注

还未添加个人签名 2019-06-29 加入

还未添加个人简介

评论

发布
暂无评论
一键生成通用的微服务(gRPC)项目代码,让你的开发效率翻倍提升_Go_vison_InfoQ写作社区