danielgtaylor / danielgtaylor/python-betterproto

Expose request metadata in the generated ```ServiceBase```

Offen
#240 9 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement medium
Vorherrschende Sprache
Python
Sterne
1.8k
Forks
234
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

```protobuf
service Echo {
rpc Echo(EchoRequest) returns (EchoResponse);
// rpc EchoStream(EchoRequest) returns (stream EchoStreamResponse);
}
```

The generated servicer code generates the code but does not expose the request metadata as a parameter.
```python
class EchoService(EchoBase):
async def echo(self, value: str, extra_times: int) -> "EchoResponse":
return value

async def echo_stream(
self, value: str, extra_times: int
) -> AsyncIterator["EchoStreamResponse"]:
for _ in range(extra_times):
yield value
```

The request metadata is really important since it works like headers in rest-api requests, so this is where a client could add authentication tokens, and also where other metadata could be injected by interceptors for instance.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne am Einstiegspunkt des Generators, der den generierten ServiceBase erzeugt, und untersuche, wie die unären und Streaming-Methodensignaturen von EchoService zusammengesetzt werden. Überprüfe, dass die generierten Methoden neben den vorhandenen Request-Feldern auch Request-Metadaten bereitstellen, und füge den relevanten Generierungstest hinzu oder aktualisiere ihn, falls einer diese Ausgabe abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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