protocol buffers - protobuffers - Método del servicio Protobuf RPC sin parámetros
protocol buffers array (2)
Puede especificar google.protobuf.Empty
lugar de su propio mensaje vacío. Ejemplo:
rpc WhoAreYou(google.protobuf.Empty) returns (Whoami) {
}
No te olvides de importar el archivo proto apropiado:
import "google/protobuf/empty.proto";
Estoy tratando de describir un servicio RPC utilizando los búferes de protocolo de Google
service WhoamiService {
rpc WhoAreYou() returns (Whoami) {}
}
message Whoami {
optional bytes request_id = 1;
optional string hostname = 2;
optional string message = 3;
}
Cuando intento compilar esta definición, WhoAreYou()
un error. Expected type name
apunta a la pieza WhoAreYou()
.
Funciona bien si sustituyo WhoAreYou()
por WhoAreYou(Whoami)
, pero en este caso, el método no necesita ningún parámetro. ¿Hay alguna forma de hacerlo o simplemente no se admite?
Tienes que especificar un tipo de entrada. Si no desea que el método tome parámetros, defina un tipo de mensaje vacío, como:
message WhoAreYouParams {}
La razón por la que se requiere esto es para que si luego necesita agregar un parámetro opcional, puede hacerlo sin romper el código existente.