生成的CRUD的api接口代码用在web服务比较常见,生成CRUD的api接口代码到grpc服务不多,本文介绍使用生成代码工具sponge,把`生成的CRUD方法代码`与`生成的微服务(grpc)代码`无缝结合在一起,不需要添加或更改任何代码,也不需要写proto文件描述信息,并包括分页条件查询、缓存等功能。
### 依赖工具
- 导入 [sql](https://github.com/zhufuyi/sponge_examples/blob/main/1_web-gin-CRUD/test/sql/user.sql) 到mysql服务。
- 安装工具 [sponge](https://github.com/zhufuyi/sponge/blob/main/assets/install-cn.md)。
安装完工具sponge后,执行命令打开UI界面:
```bash
sponge run
```
<br>
### 快速创建微服务项目
进入sponge的UI界面,点击左边菜单栏【sql】-->【创建微服务项目】,填写一些参数生成微服务完整项目代码。
![micro-rpc.png](https://static.golangjob.cn/231108/8c1381a49cad579e4fd238493a3c30cc.png)
微服务代码主要由 [grpc](https://github.com/grpc/grpc-go)、[gorm](https://github.com/go-gorm/gorm)、[go-redis](https://github.com/go-redis/redis)等常用库组成,还包含了rpc客户端CRUD测试代码,常用的服务治理功能代码,构建部署脚本等。
切换到user目录,执行命令:
```bash
# 生成代码
make proto
# 编译和启动服务
make run
```
使用goland IDE打开user服务代码,进入internal/service目录下,打开`teacher_client_test.go`文件,可以在这里测试CRUD方法,类似在swagger界面测试CRUD接口,测试前填写参数,点击绿色按钮进行测试。
![micro-rpc-test.png](https://static.golangjob.cn/231108/69b05c549e1d748bc3bf84ee27a1ccb3.png)
<br>
### 批量添加CRUD代码到grpc服务
进入sponge的UI界面,点击左边菜单栏【SQL】-->【生成service CRUD代码】,选择表来生成代码,然后把生成的CRUD代码移动到user服务目录,就完成了在微服务中批量添加CURD接口,不需要更改任何代码。
![micro-rpc-service.png](https://static.golangjob.cn/231108/7acfcc4b0612fd22ee2f9193e5164599.png)
切换到user服务目录,执行命令:
```bash
# 生成代码
make proto
# 编译和启动服务
make run
```
使用goland IDE,进入internal/service目录下,打开`teach_client_test.go`和`course_client_test.go`文件就可以测试CRUD方法了。
<br>
**这是根据上面步骤生成的完整微服务服务代码** [https://github.com/zhufuyi/sponge_examples/tree/main/2_micro-grpc-CRUD](https://github.com/zhufuyi/sponge_examples/tree/main/2_micro-grpc-CRUD)
**点击查看详细的开发微服务文档** [https://go-sponge.com/microservice-development-mysql](https://go-sponge.com/microservice-development-mysql)
<br>
<br>
有疑问加站长微信联系(非本文作者))