如何在 ProtoBuf 中 return 一个简单的布尔值?

How to return a simple boolean value in ProtoBuffer?

在我的proto文件中,我定义了一个服务接口:

syntax = "proto3";

package mynamespace;

import "google/protobuf/empty.proto";

service MyService {
    rpc isTokenValid (TokenRequest) returns (TokenResponse) {
    }
}

message TokenRequest {
    string token = 1;
}

message TokenResponse {
    bool valid = 1;
}

上面的效果很好,但是,我认为 TokenResponse 很难看。 bool valid = 1 是多余的,理想情况下应该像下面这样

rpc isTokenValid (TokenRequest) returns (BooleanResponse) {
}

但我不知道如何编写这样的 proto 文件,任何专家都可以分享一些最佳实践吗?

提前致谢!

更新:

如何直接return一个数组?例如,这是我的代码:

service MyService {
    rpc arrayResponse (TokenRequest) returns (ArrayResponse) {}
}

message ArrayResponse {
    repeated Data data = 1;
}

message Data {
    string field1 = 1;
    string field2 = 2;
}

我认为这很丑陋,如何以正确的 google 方式重构?

谢谢!

为什么不直接使用预定义的 BoolValue as specified in Google's wrappers.proto 作为您的回复?

类似于:

syntax = "proto3";

package mynamespace;

import "google/protobuf/wrappers.proto";

service MyService {
    rpc isTokenValid (TokenRequest) returns (google.protobuf.BoolValue) {
    }
}

message TokenRequest {
    string token = 1;
}