Protobuf: потоковый ввод с общими данными для всех элементов - PullRequest
0 голосов
/ 17 января 2019

Ниже приведена спецификация услуги:

service Cooler {
    rpc saveThing (stream SaveRequest) returns (SaveReply);
}

Мне нужно для потоковой передачи сообщений на Cooler.saveThing(). Все SaveRequests имеют общее поле author и уникальные поля для Thing: price и name. Как я могу отправить author только один раз?

Не работает попытка - несколько входов

Это было бы решением, но оно еще не поддерживается protobuf. * ​​1015 *

service Cooler {
    rpc saveThing (stream SaveRequest, Author) returns (SaveReply);
}

Не работает попытка - вложенное сообщение

Каждый полученный элемент SaveRequest будет по-прежнему содержать author и массив Things.

message SaveRequest {
  message Thing {
    int price = 1;
    string name = 2;
  }

  repeated Thing things = 1;
  string author = 2;
}

Возможное решение

Заголовки Grpc.

Вопрос

Как я могу отправить author только один раз?

...