{
proto_path:"path1/path2",
message_name: "message1",
field_path:"field1.field2"
}
proto/
├── path1/
│ ├── path2/
│ │ ├── proto1/
│ │ │ └── proto1.pb.go // proto1 和 proto2 在经过 protoc-gen-go 转译之前同属于
│ │ ├── proto2/ // 名称为 path2 的 proto package, message1 位于 proto1 中
│ │ │ └── proto2.pb.go
│ ├── path4/
│ │ └── message3.proto
│ └── utils.proto
├── path5/
│ └── message4.proto
└── path6/
└── message5.proto
需要根据传入的参数来拿到对应 proto 下 message2 的值,由于 proto 比较大,无法维护路径与 message 的 go 结构体定义的映射,需要通过反射去动态取值。 对 go protobuf 反射不太熟,这个搞不太定,有无大神帮忙看看👀
1
qzzz 15 小时 35 分钟前 2
|
3
SingeeKing 14 小时 2 分钟前
用 path 是不是有点奇怪,正常做法应该是用 package 的,然后在 registry 查就行
--- 如果是一些特殊的服务无法保证 package 唯一,那么可能唯一的办法就是写个脚本来生成了 |
4
guanzhangzhang 12 小时 34 分钟前
github.com/jhump/protoreflect 之前写的一个逆向生成 pb 文件,用了这个库实现的
|