利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码
目录
简介
github:https://github.com/arrayhua/go_grpc_gorm_micro
ps:不要认为依赖项很多,觉得是需要全部掌握才可以上手哦。其实只需要懂MVC和GO语言基础即可完成业务需求。
微服务、云原生的时代,本项目以go语言为基础,采用grpc面向移动和 HTTP/2 设计(HTTP2好处很多哦),开发微服务项目。
整体技术栈是利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码,包含的功能有:
-
数据库:mysql,使用
gorm
实现对数据库的基本操作。 -
配置文件:使用
fsnotify
和viper
实现yaml
格式的配置文件。 -
控制台:cobra,通过读取mysql数据之后利用text/template进行模版替换。生成路由(api)、proto、服务层(service)的代码样例。
-
API文档:使用
Swagger
构建自动化文档。 -
日志:使用
zap
实现日志记录。 -
中间件:目前已经包含的中间件有认证、日志、全局异常处理
-
todo...接入配置中心、注册中心、
大致系统架构图如下:
目录结构
├── LICENSE ├── README.md ├── api // MVC里面的 C 控制器 │ ├── sys_api.go ├── cmd // 控制台命令 │ ├── LICENSE │ ├── cmd │ │ ├── curd.go │ │ ├── root.go │ │ └── version.go │ ├── latest_log │ └── main.go ├── config │ ├── config.go │ ├── gorm.go │ ├── system.go │ └── zap.go ├── config.yaml // 项目配置文件 ├── curd.sh ├── go.mod ├── go.sum ├── initialize │ ├── config.go │ └── gorm.go ├── latest_log ├── lib │ ├── middleware │ ├── model │ │ └── model.go │ ├── response │ │ └── response.go │ ├── swagger │ ├── tls │ │ ├── server.key │ │ └── server.pem │ ├── tpl │ │ ├── api │ │ ├── proto │ │ │ ├── _model.proto.tpl │ │ │ └── _service.proto.tpl │ │ └── service │ └── utils ├── log ├── main.go // 入口文件 ├── model │ └── sys_generate.go ├── proto └── service ├── curd.go ├── sys_api.go
依赖的其他go组件
ps:不要认为依赖项很多,觉得是需要全部掌握才可以上手哦。其实只需要懂MVC和GO语言基础即可完成业务需求。
参考资料
【go文档】https://studygolang.com/pkgdoc
【cobra使用】https://honeypps.com/golang/go-command-lib-cobra-guide/
【cobra】https://github.com/spf13/cobra
【go-grpc-middleware】https://github.com/grpc-ecosystem/go-grpc-middleware
【proto Any】https://blog.csdn.net/qq_32828933/article/details/105783982