Могу ли я определить вызов grpc с нулевым запросом или ответом?



синтаксис rpc в proto3 допускает нулевые запросы или ответы?



например, я хочу эквивалент следующего:



rpc Logout;
rpc Status returns (Status);
rpc Log (LogData);


или я должен просто создать пустой тип?



message Null {};

rpc Logout (Null) returns (Null);
rpc Status (Null) returns (Status);
rpc Log (LogData) returns (Null);
499   1  

1 ответ:

комментарий Кентона ниже-это здравый совет:

... мы, как разработчики, очень плохо угадываем, что нам может понадобиться в будущем. Поэтому я рекомендую быть безопасным, всегда определяя пользовательские параметры и типы результатов для каждого метода, даже если они пусты.


отвечая на мой собственный вопрос:

просматривая файлы proto по умолчанию, я наткнулся на пустой это точно так же, как нулевой тип, который я предложил выше :)

выдержка из этого файла:

// 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 {

}

Comments

    Ничего не найдено.