如何在 gRPC 原型文件中创建关联?



我可能以错误的方式去做,但我想定义两个或多个结构(消息)之间的关系。

以 StackOverflow 为例,假设我对标签上的 CRUD 操作LabelService。我还有一个QuestionServiceQuestion可以Labels.让我们也假设我有一个UserService,一个User也可以附上标签

# label.proto
service LabelService {
rpc CreateLabel() returns();
...etc
}
message Label {
string text = 1;
}

但现在我想创建我的QuestionServiceQuestion消息。我是否以某种方式关联这两个文件,或者这种级别的关联是在 go 代码中完成的?

# question.proto
service QuestionService {
rpc CreateQuestion() returns();
...etc
}
message Question {
string text = 1;
repeat Label labels = 2 # <-- how to do this?
}
# user.proto
service UserService {
rpc CreateQuestion() returns();
...etc
}
message User {
string name = 1;
repeat Label labels = 2 # <-- how to do this?
}

我想我很困惑,因为对于 REST API 并使用 gorm.io 例如,我会在结构中设置关联并 gorm.io 创建表。

从文档中:

import "myproject/other_protos.proto";

因此,只需在question.proto中添加一个import即可user.proto。这与导入其他标准proto定义(如timestampduration)没有什么不同:

import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";

您是否已经在 question.proto 中导入了 user.proto?

in question.proto

import "user.proto"<-我认为您可以使用Label labels

相关内容

  • 没有找到相关文章

最新更新