如何在 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;
}
在我的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;
}