在使用protobuf协议的grpc服务中,通常添加新grpc方法的步骤:
1. 在proto文件定义grpc方法和message。
2. 根据proto文件生成pb.go文件。
3. 实现server端的grpc方法接口,在实现grpc方法函数里面编写业务逻辑代码。
4. 使用第三方工具或写一个调用grpc方法的客户端来测试。
其实这四个步骤中涉及的绝大多数代码可以自动生成,简化到只需在proto文件定义grpc方法和message,然后在生成的模板文件填写具体业务逻辑代码即可。
<br>
### 依赖工具
- 准备proto文件 [user.proto](https://github.com/zhufuyi/sponge_examples/blob/main/4_micro-grpc-protobuf/api/user/v1/user.proto)。
- 安装工具 [sponge](https://github.com/zhufuyi/sponge/blob/main/assets/install-cn.md)。
安装完工具sponge后,执行命令打开UI界面:
```bash
sponge run
```
<br>
### 快速创建微服务项目
进入sponge的UI界面,点击左边菜单栏【Protobuf】-->【创建微服务项目】,填写一些参数生成通用的微服务项目代码。
![micro-rpc-pb.png](https://static.golangjob.cn/231108/22f7795630af588e34feb725e88c82f2.png)
微服务框架使用 [grpc](https://github.com/grpc/grpc-go),还包含了常用的服务治理功能代码,构建部署脚本等,使用什么数据库由使用者选择。
切换到user目录,执行命令:
```bash
# 生成代码
make proto
# 打开internal/service/user.go代码文件,根据生成的示例代码填写具体逻辑代码。
# 编译和启动服务
make run
```
使用goland IDE打开user服务代码,进入internal/service目录下,打开`user_client_test.go`文件,可以在这里测试grpc方法,类似在swagger界面测试接口,测试前填写参数,点击绿色按钮进行测试。
![micro-rpc-pb-test.png](https://static.golangjob.cn/231108/e4ace7b54ccea65d05a0b45cd07d7e5b.png)
<br>
**这是根据上面步骤生成的通用微服务代码** [https://github.com/zhufuyi/sponge_examples/tree/main/4_micro-grpc-protobuf](https://github.com/zhufuyi/sponge_examples/tree/main/4_micro-grpc-protobuf)
**在生成的通用微服务代码上可以`自动添加CRUD api接口`、`人工添加自定义api接口`,点击查看详细的开发通用微服务文档** [https://go-sponge.com/zh-cn/microservice-development-protobuf](https://go-sponge.com/zh-cn/microservice-development-protobuf)
<br>
<br>
有疑问加站长微信联系(非本文作者))