示例二:不需要写一行go代码,一键自动生成 grpc+gorm+redis+CRUD 完整微服务项目代码

zhufuyi · · 1006 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

生成的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>

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1006 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传