本项目是基于go-kit-micro-service所提供的基础封装库,而生成的go-kit框架中所需要的协议数据结构、endpoint入口函数以及gRPC
+ http(gin)
的transport层代码。本插件支持基于服务端和客户端代码的生成。
endpoint
层, 提供每项服务的入口,以及与服务之间交互所需要的业务数据结构;transport
层, 提供http
以及gRPC
协议的协议转换以及路由注册相关入口实现;swagger
接口文档;- 基于protobuf生成的
gRPC
底层代码;
service git:(master) $ tree
.
├── auto-gen.sh
├── configure
│ └── configure.go
├── docker
│ └── consul-zipkin
│ ├── client.json
│ ├── docker-compose.yml
│ ├── README.md
│ └── server.json
├── endpoint ## 由 protoc-gen-gokit-micro生成
│ ├── calculate
│ │ └── calculate.go
│ └── version
│ └── version.go
├── go.mod
├── go.sum
├── main.go
├── Makefile
├── micro-service
├── pb ## 由 protoc-gen-gokit-micro生成
│ ├── calculate.proto
│ ├── golang
│ │ └── pkg
│ │ ├── calculate
│ │ │ └── calculate.pb.go
│ │ └── version
│ │ └── version.pb.go
│ ├── google
│ │ ├── api
│ │ │ ├── annotations.proto
│ │ │ └── http.proto
│ │ └── protobuf
│ │ ├── any.proto
│ │ ├── api.proto
│ │ ├── compiler
│ │ │ └── plugin.proto
│ │ ├── descriptor.proto
│ │ ├── duration.proto
│ │ ├── empty.proto
│ │ ├── field_mask.proto
│ │ ├── source_context.proto
│ │ ├── struct.proto
│ │ ├── timestamp.proto
│ │ ├── type.proto
│ │ └── wrappers.proto
│ └── version.proto
├── server
│ ├── grpc
│ │ └── server.go
│ └── http
│ └── server.go
├── service
│ ├── calculate.go
│ └── version.go
├── swagger ## 由 protoc-gen-gokit-micro生成
│ ├── calculate.swagger.json
│ └── version.swagger.json
├── transport ## 由 protoc-gen-gokit-micro生成
│ ├── gin
│ │ ├── calculate
│ │ │ ├── calculate.calculate.go
│ │ │ └── calculate.messaging.go
│ │ └── version
│ │ └── version.versionservice.go
│ └── grpc
│ ├── calculate
│ │ ├── calculate.calculate.go
│ │ └── calculate.messaging.go
│ └── version
│ └── version.versionservice.go
├── version
│ └── version.go
└── version.go
protocol
定义,提供与服务端交互所需要的业务层数据结构定义;endpoint
,按照gRPC
以及HTTP
协议接入点,分别封装了各服务各函数入口,以及协议转码相关业务代码;
client git:(master) $ tree
.
├── auto-gen.sh
├── go.mod
├── go.sum
├── grpc.go
├── http.go
├── invoker ## 由 protoc-gen-gokit-micro生成
│ ├── grpc
│ │ ├── calculate
│ │ │ └── calculate.go
│ │ └── version
│ │ └── version.go
│ ├── http
│ │ ├── calculate
│ │ │ └── calculate.go
│ │ └── version
│ │ └── version.go
│ └── protocol
│ ├── calculate
│ │ └── calculate.go
│ └── version
│ └── version.go
├── main.go
├── Makefile
├── micro-client
├── pb ## 由 protoc-gen-gokit-micro生成
│ ├── calculate.proto
│ ├── golang
│ │ └── pkg
│ │ ├── calculate
│ │ │ └── calculate.pb.go
│ │ └── version
│ │ └── version.pb.go
│ ├── google
│ │ ├── api
│ │ │ ├── annotations.proto
│ │ │ └── http.proto
│ │ └── protobuf
│ │ ├── any.proto
│ │ ├── api.proto
│ │ ├── compiler
│ │ │ └── plugin.proto
│ │ ├── descriptor.proto
│ │ ├── duration.proto
│ │ ├── empty.proto
│ │ ├── field_mask.proto
│ │ ├── source_context.proto
│ │ ├── struct.proto
│ │ ├── timestamp.proto
│ │ ├── type.proto
│ │ └── wrappers.proto
│ └── version.proto
├── swagger ## 由 protoc-gen-gokit-micro生成
│ ├── calculate.swagger.json
│ └── version.swagger.json
└── version.go