欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码

程序员文章站 2022-05-08 08:44:26
...

目录

简介

目录结构

依赖的其他go组件

参考资料


简介

github:https://github.com/arrayhua/go_grpc_gorm_micro

ps:不要认为依赖项很多,觉得是需要全部掌握才可以上手哦。其实只需要懂MVC和GO语言基础即可完成业务需求。

微服务、云原生的时代,本项目以go语言为基础,采用grpc面向移动和 HTTP/2 设计(HTTP2好处很多哦),开发微服务项目。

整体技术栈是利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码,包含的功能有:

  • 数据库:mysql,使用gorm实现对数据库的基本操作。

  • 配置文件:使用fsnotifyviper实现yaml格式的配置文件。

  • 控制台:cobra,通过读取mysql数据之后利用text/template进行模版替换。生成路由(api)、proto、服务层(service)的代码样例。

  • API文档:使用Swagger构建自动化文档。

  • 日志:使用zap实现日志记录。

  • 中间件:目前已经包含的中间件有认证、日志、全局异常处理

  • todo...接入配置中心、注册中心、

大致系统架构图如下:

利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码

 

 

目录结构

├── 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