gPRC (protobuf) return 可以是空消息吗?

Can gPRC (protobuf) return a null message?

我们的客户端调用 gRPC 服务器,理想情况下应该 return 一个 MyMessage 响应对象。

但是这个MyMessage对象可以为null吗?或者 gRPC 不能 return null object 因为如果它是 null,grpc 会抛出异常?

回答您的问题,检查这些 Google docs 其中说:

Note that no Java protocol buffer methods accept or return nulls unless otherwise specified.

所以 gRPC 似乎不能 return null。顺便说一句,你可以看看 google.protobuf.empty and reference for Java

您可以像这样定义原型:

import "google/protobuf/empty.proto";

service SomeService {
    rpc SomeOperation (google.protobuf.Empty) returns (google.protobuf.Empty) {}
}