在 PHP 客户端和 Python 服务器上拥有这个 proto3 模式:
service GetAnimalData{
rpc GetData (AnimalRequest) returns (AnimalData) {}
}
message AnimalRequest {
OneOfAnimal TypeAnimal = 1;
}
message AnimalData {
repeated int32 data = 1;
}
message OneOfAnimal {
oneof animal_oneof {
CAT cat = 1;
DOG dog = 2;
}
}
message CAT{
int32 p = 1;
int32 d = 2;
int32 q = 3;
}
message DOG{
int32 p = 1;
int32 d = 2;
int32 q = 3;
int32 p2 = 4;
int32 d2 = 5;
int32 q2 = 6;
}
为了设置来自 PHP 客户端的请求,我需要执行以下操作:
- 创建一个新的
CAT
- 设置
OneOfAnimal
为CAT
- 设置
AnimalRequest.TypeAnimal
为OneOfAnimal
是否有 proto3 的架构,我可以直接将 aCAT
或DOG
object 设置为我的AnimalRequest.TypeAnimal