对于rpc服务端开发时,生成的.pb.go文件,除了服务端使用,客户端也要使用这个文件,这个文件放在什么位置才是比较合理?有无参考的目录结构?
对于rpc服务端开发时,生成的.pb.go文件,除了服务端使用,客户端也要使用这个文件,这个文件放在什么位置才是比较合理?有无参考的目录结构?
仅供参考:
projectname
├── common
│ ├── proto
│ │ ├── xxx
│ │ │ ├── xxx.pb.go
│ │ │ └── xxx.proto
│ │ ├── yyy
│ │ │ ├── yyy.pb.go
│ │ │ └── yyy.proto
│ │ ├── zzz
│ │ │ ├── zzz.pb.go
│ │ │ └── zzz.proto
├── go.mod
├── go.sum
├── client
│ ├── grpc
│ │ ├── client.go
│ │ └── server.go
│ ├── alert
│ │ ├── alert.go
│ │ └── alert_test.go
│ └── main.go
├── server
│ ├── alert
│ │ ├── alert.go
│ ├── grpc
│ │ ├── client.go
│ │ └── server.go
│ └── main.go
将所有公共功能,比如proto的定义放到common中,在项目中引用时:
import (
"projectname/common/proto/xxx"
"projectname/common/proto/yyy"
"projectname/common/proto/zzz"
)
go.mod中:
module projectname
go 1.14
require (
github.com/... v1.5.0 //仅供参考
)
我们是这样规划的:
如果这个项目的proto会被其他的项目引用,那么 proto 就放在 公共的proto项目里,
否则就放自己项目里,
生成的pb,自己去拉取对应的proto生成pb, 不管是客户端还是服务端
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答879 阅读✓ 已解决
2 回答2.2k 阅读
1 回答2.1k 阅读
可以建一个专门的git仓库存放pb文件,这样不同的项目需要引入的时候直接引入这个包就可以,更新也方便,直接用git进行版本控制