回答:
以下のケントンのコメントは健全なアドバイスです:
...開発者としての私たちは、私たちが将来何を望んでいるかを推測するのが本当に苦手です。そのため、空の場合でも、すべてのメソッドのカスタムパラメータと結果タイプを常に定義することにより、安全であることをお勧めします。
私自身の質問に答える:
デフォルトのprotoファイルを見ると、上記で提案したNull型とまったく同じであるEmptyが見つかりました。
そのファイルからの抜粋:
// A generic empty message that you can re-use to avoid defining duplicated
// empty messages in your APIs. A typical example is to use it as the request
// or the response type of an API method. For instance:
//
// service Foo {
// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
// }
//
message Empty {
}
Empty
個々の関数呼び出しごとに個別のメッセージが必要になるでしょうか?それはかなりの犠牲です。