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

目录

简介

目录结构

依赖的其他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实现对数据库的基本操作。

配置文件:使用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语言基础即可完成业务需求。

protoc

protoc-gen-go

cobra

protoc-go-inject-tag

gorm

参考资料

【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

你可能感兴趣的:(利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码)