grpc / grpc/grpc-java

Improve unary server stub

Offen
#1,474 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

The Java unary stub is taking the form of an async service, where a single result is expected to return from a StreamObserver.

This can be error prone:
- You can't tell from the stub whether it's unary or streaming multiple results
- The code can easily call onNext one too many times, or not call onComplete

Unary gRPC stubs for several other stubs expects a single return value from the method. Java should follow the same convention:
https://github.com/grpc/grpc/blob/master/examples/python/helloworld/greeter_server.py
https://github.com/grpc/grpc/blob/master/examples/ruby/greeter_server.rb
https://github.com/grpc/grpc-go/blob/master/examples/helloworld/greeter_server/main.go

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die verknüpften Beispiele examples/helloworld/greeter_server.py, greeter_server.rb und greeter_server/main.go mit der Java-Unary-Server-Stub-API zu vergleichen. Verfolge, wie Java Unary-Methoden derzeit darstellt, und ermittle die Auswirkungen auf die Kompatibilität. Als abgeschlossen gilt die Änderung, wenn Unary-Methoden ein einzelnes zurückgegebenes Ergebnis statt eines StreamObserver bereitstellen, während Streaming-Methoden ihr bisheriges Verhalten beibehalten, und Tests diese Konvention abdecken.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
grpc, java
Bereich
api, backend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
32/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.