Protoc generiert für jeden im protobuf-file definierte Service eine Klasse mit Grpc-Endung, die eine ImplBase-Klasse bereit stellt. Diese kann erweitert werden und darin die Service-Logik implementiert werden.
Anstatt die Antwort per return zurückzugeben, erwartet die Funktion zusätzlich zu den Parametern einen StreamObserver<T>, der die Methoden onNext(T), onError(Throwable) und onCompleted() bereitstellt.
Beispiel
public class FooServiceImpl extends FooServiceGrpc.FooServiceImplBase {
@Override
public void registerUser(Credentials c, StreamObserver<User> observer) {
// Service-Logik...
User user = User.newBuilder().build();
observer.onNext(response);
observer.onComplete();
}
}Siehe auch