Как вернуть простое логическое значение в 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
Можно ли поделиться опытом с этим?
Заранее спасибо!
Обновления:
Как вернуть массив напрямую? Например, это мой код:
service MyService {
rpc arrayResponse (TokenRequest) returns (ArrayResponse) {}
}
message ArrayResponse {
repeated Data data = 1;
}
message Data {
string field1 = 1;
string field2 = 2;
}
Я думаю, что это некрасиво, как правильно провести рефакторинг в Google?
Спасибо!
1 ответ
Решение
Почему бы просто не использовать предопределенное BoolValue, как указано в Google 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;
}