2015-04-16 8 views
12

che sto cercando di descrivere un servizio RPC utilizzando Google buffer protocollometodo Protobuf servizio RPC senza parametri

service WhoamiService { 
    rpc WhoAreYou() returns (Whoami) {} 
} 

message Whoami { 
    optional bytes request_id = 1; 
    optional string hostname = 2; 
    optional string message = 3; 
} 

Quando provo a compilare questa definizione, ottengo un errore di puntamento Expected type name al pezzo WhoAreYou().

Funziona bene se sostituisco WhoAreYou() con WhoAreYou(Whoami), ma in questo caso, il metodo non ha bisogno di alcun parametro .. C'è un modo per farlo o semplicemente non è supportato?

+0

i visitatori di questa pagina potrebbero anche essere interessati a https://stackoverflow.com/a/31772973/10278 e google.protobuf.Empty – pestophagous

risposta

20

È necessario specificare un tipo di input. Se non si desidera che il metodo di prendere alcun parametro, definire un tipo di messaggio vuoto, come:

message WhoAreYouParams {} 

La ragione per questo è richiesto è così che se in seguito necessario aggiungere un parametro opzionale, è possibile farlo senza rompere il codice esistente.