Как вернуть массив в Protobuf service rpc
у меня следующая схема в моем :
service MyService {
rpc GetItem (ItemQuery) returns (Item) {
}
}
message ItemQuery {
int id = 1;
}
message Item {
int id = 1;
string name = 2;
}
Теперь я хочу добавить другой метод rpc для возврата нескольких элементов. Что-то вроде этого:--4-->
rpc GetItems (ItemsQuery) returns (repeated Item) {
}
есть ли лучший способ сделать это, чем определить элементы сообщения?
1 ответов
Вариант 1 - использовать stream:
rpc GetItems (ItemsQuery) returns (stream Item) {
}
Вариант 2 - установить ответное сообщение, которое будет использовать повторяющиеся объекта:
service MyService {
rpc GetItem (ItemQuery) returns (ItemResponse) {
}
}
message ItemQuery {
int id = 1;
}
message ItemResponse {
repeated Item items = 1;
}
message Item {
int id = 1;
string name = 2;
}