我目前有两个 protobuf 回购协议:api 和timestamp:
时间戳回购:
- README.md
- timestamp.proto
- timestamp.pb.go
- go.mod
- go.sum
api回购:
- README.md
- protos/
- dto1.proto
- dto2.proto
目前,timestamp包含对我想在其中使用的时间戳对象的引用api,但我不确定导入应该如何工作或者我应该如何修改编译过程来处理这个问题。使这个过程复杂化的是,apirepo 被编译为一个单独的、下游的 Go 的 repo,名为api-go.
例如,考虑dto1.proto:
syntax = "proto3";
package api.data;
import "<WHAT GOES HERE?>";
option go_package = "github.com/my-user/api/data"; // golang
message DTO1 {
string id = 1;
Timestamp timestamp = 2;
}
我的编译命令是这样的:
find $GEN_PROTO_DIR -type f -name "*.proto" -exec protoc \
--go_out=$GEN_OUT_DIR --go_opt=module=github.com/my-user/api-go \
--go-grpc_out=$GEN_OUT_DIR --go-grpc_opt=module=github.com/my-user/api-go \
--grpc-gateway_out=$GEN_OUT_DIR --grpc-gateway_opt logtostderr=true \
--grpc-gateway_opt paths=source_relative --grpc-gateway_opt
generate_unbound_methods=true \{} \;
timestamp假设我对要编译成的每种编程语言都有一个定义api,我将如何将其导入到.proto文件中,我应该怎么做才能确保导入不会在我的下游存储库中中断?
海绵宝宝撒
相关分类