//Versionsdefinition
syntax = "proto3";
//Paketdefinition
package sample;
// import
import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";
//Service- und RPC-Methodendefinition
service SampleService {
rpc Sample (SampleRequest) returns (SampleResponse);
//Server-Streaming-RPC
rpc SampleServerStreamMethod (SampleRequest) returns (stream SampleResponse);
//Client-Streaming-RPC
rpc SampleClientStreamMethod (stream SampleRequest) returns (SampleResponse)
//Bidirektionales Streaming von RPC
rpc SampleBidirectionalMethod (stream SampleRequest) returns (stream SampleResponse)
}
message SampleRequest {
string name = 1;
}
message SampleResponse {
Sample sample = 1;
}
//Nachrichtentyp
//Die Nummer rechts ist die "Tag-Nummer"
message Sample {
//Skalartyp
//Es gibt Zahlen, Zeichenfolgen, Boolesche Werte und Byte-Arrays
int32 id = 1;
string name = 2;
bool isBool = 3;
//veraltet Geben Sie Felder an, die veraltet und veraltet sind
string duplicated_field = 4 [deprecated = true]
//reservierte Kennung Nicht mehr verfügbare Tag-Nummer
reserved 7, 8, 10 to 12;
//Liste (Array)
//Mehrdimensionales Array kann nicht definiert werden
repeated SampleList sample_list = 5;
//Karte (assoziatives Array)
map<string, string> sample_map = 6;
//Jeder aus mehreren
oneof message {
string one = 1;
string other = 2;
}
// Well Known Types
google.protobuf.Duration sample_duration = 9;
google.protobuf.Timestamp create_time = 13;
//Aufzählungstyp
enum SampleEnum {
UNKNOWN = 0;
TEST1 = 1;
TEST2 = 2;
TEST3 = 3;
}
}
syntax = "proto3";
package sample;
import
import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";
--API-Definitionskörper
service SampleService {
rpc Sample (SampleRequest) returns (SampleResponse);
//Server-Streaming-RPC
rpc SampleServerStreamMethod (SampleRequest) returns (stream SampleResponse);
//Client-Streaming-RPC
rpc SampleClientStreamMethod (stream SampleRequest) returns (SampleResponse);
//Bidirektionales Streaming von RPC
rpc SampleBidirectionalMethod (stream SampleRequest) returns (stream SampleResponse);
}
--Numerischer Wert, Zeichenfolge, Boolescher Wert, Byte-Array sind Datentypen
Datentyp | Standardwert |
---|---|
string | Leerer Charakter |
bytes | Leeres Array |
bool | false |
Numerischer Wert | 0 |
enum | Der erste definierte Wert. Muss 0 sein |
Nachrichtentyp | Implementierung abhängig |
repeated | Leeres Array |
--Typ mit mehreren Feldern --Tag Nummer
message Sample {
//Skalartyp
//Es gibt Zahlen, Zeichenfolgen, Boolesche Werte und Byte-Arrays
int32 id = 1;
string name = 2;
bool isBool = 3;
//veraltet Geben Sie Felder an, die veraltet und veraltet sind
string duplicated_field = 4 [deprecated = true]
//reservierte Kennung Nicht mehr verfügbare Tag-Nummer
reserved 7, 8, 10 to 12;
//~ Ausgelassen ~
}
//Liste (Array)
//Mehrdimensionales Array kann nicht definiert werden
repeated SampleList sample_list = 5;
map<string, string> sample_map = 6;
//Aufzählungstyp
enum SampleEnum {
UNKNOWN = 0;
TEST1 = 1;
TEST2 = 2;
TEST3 = 3;
}
oneof
oneof message {
string one = 1;
string other = 2;
}
Well Known Types
google.protobuf.Duration sample_duration = 9;
google.protobuf.Timestamp create_time = 13;
Recommended Posts