webentwicklung-frage-antwort-db.com.de

Kann ich einen Grpc-Aufruf mit einer Nullanfrage oder -antwort definieren?

Ermöglicht die RPC-Syntax in Proto3 null Anfragen oder Antworten?

z.B. Ich möchte das Äquivalent von Folgendem:

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

Oder soll ich einfach einen NULL-Typ erstellen?

message Null {};

rpc Logout (Null) returns (Null);
rpc Status (Null) returns (Status);
rpc Log (LogData) returns (Null);
86
Mark Kahn

Kentons Kommentar unten ist ein guter Rat:

... wir als Entwickler sind wirklich schlecht darin zu erraten, was wir in Zukunft wollen könnten. Ich empfehle daher, immer benutzerdefinierte Parameter und Ergebnistypen für jede Methode zu definieren, auch wenn diese leer sind.


Beantwortung meiner eigenen Frage:

Beim Durchsehen der Standard-Protodateien bin ich auf Leer gestoßen, das entspricht genau dem oben vorgeschlagenen Null-Typ :)

auszug aus dieser Datei:

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

}
117
Mark Kahn