grpc / grpc/grpc-java

Improve client stream server side stub

Offen
#1,475 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

Looking at this:
https://github.com/grpc/grpc-java/blob/master/examples/src/main/java/io/grpc/examples/routeguide/RouteGuideServer.java#L187

This is super weird to have the "request input", Points, as a return value of a method, and the response RouteSummary, to be the input parameter of a method. I took a look at this for a while to figure out what's going on. I see it is forcing the implementation of StreamObserver interface to process the incoming Points, and thus requiring it to be a return value. I wonder if there is a better way of doing this.

Every other language stubs seems to generate sensible stubs where the input steam is in fact the parameter and not a return value, and they actually returns the actual RouteSummary as the return value of the method.
https://github.com/grpc/grpc-go/blob/master/examples/route_guide/server/server.go#L102
https://github.com/grpc/grpc/blob/master/examples/node/route_guide/route_guide_server.js#L156
https://github.com/grpc/grpc/blob/master/examples/python/route_guide/route_guide_server.py#L93
https://github.com/grpc/grpc/blob/master/examples/ruby/route_guide/route_guide_server.rb#L144

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie mit der serverseitigen Streaming-Implementierung in examples/src/main/java/io/grpc/examples/routeguide/RouteGuideServer.java ungefähr in Zeile 187 und vergleichen Sie anschließend die im Issue verlinkten Route-Guide-Server in Go, Node, Python und Ruby. Ermitteln Sie, ob die Java-Stub-API den Request-Stream und RouteSummary auf natürlichere Weise bereitstellen kann; abgeschlossen ist die Aufgabe, wenn ein abgestimmtes Design sowie entsprechende Aktualisierungen an den generierten Stubs und am Beispiel vorliegen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
grpc, java
Bereich
api, backend-api-design
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

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