Аннотирование принудительного вызова rpc в буферах протокола

#c #rpc #protocol-buffers

#c #rpc #протокол-буферы

Вопрос:

Как мне определить принудительный вызов rpc только на языке буферов протокола? Синтаксис, показанный в подразделе определения службы, показывает только общую пару запрос -> возвращает.

Одно из решений, которое я могу придумать, — это иметь сообщение sentinel, такое как ‘ReturnsNothing’, и искать его в моей программе генерации rpc.

Я надеюсь, что есть лучший способ сделать это, возможно, есть недокументированное решение?

Ответ №1:

Вы могли бы просто ввести и использовать Empty тип сообщения:

 message Empty
{
}

service MyService
{
  rpc Search (MyRequest) returns (Empty);
}
  

(Не уверен, что вы имели в виду то же самое с вашим сообщением ReturnsNothing).

Комментарии:

1. Да, это то же самое, о чем я упоминал, ничего не возвращает : D

2. Ах, хорошо. Ну, нет ничего плохого в пустом типе или типе единицы, как их называют некоторые люди.