2015-05-07 18 views
6

Ho visto due diversi modi di dichiarare un servizio GRPC usando Protobuf v3. Alcuni codice ha lo rpc line end with a semicolon (come la documentazione proto3 corrente):sintassi gRPC/Protobuf 3: qual è la differenza tra le linee rpc che terminano con punto e virgola contro '{}'?

service SearchService { 
    rpc Search (SearchRequest) returns (SearchResponse); 
} 

Altro code has the rpc line end with{}:

service Greeter { 
    rpc SayHello (HelloRequest) returns (HelloReply) {} 
} 

Entrambi compilare con il compilatore ProtoC v3.0.0-alfa-2 e producono la stesso codice (vai).

Qual è la differenza tra le due sintassi?

risposta

5

Niente, davvero; sono equivalenti.

La sintassi {} viene utilizzata quando ci sono opzioni. Se non si specifica alcuna opzione, la sintassi funziona (come in C!).

+0

Grazie! Hai qualcosa che mostra le opzioni in uso? – psanford

+2

https://github.com/gengo/grpc-gateway ne fa uso per REST → conversione di gRPC (FYI: in un PR è possibile scambiare le annotazioni con quelle su https://github.com/google/googleapis/tree/master/google/API). Anche le cose come il timeout potrebbero essere specificate con un'opzione, ma non penso che siano ancora definite. –

Problemi correlati