Как вернуть простое логическое значение в 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;
}
Другие вопросы по тегам