danielgtaylor / danielgtaylor/python-betterproto

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

Abierto
#240 9 comentarios 5 reacciones 0 asignados Ver en GitHub
enhancement medium
Lenguaje dominante
Python
Estrellas
1.8k
Forks
234
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

```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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en el punto de entrada del generador que produce el ServiceBase generado e inspecciona cómo se ensamblan las firmas de los métodos unary y streaming de EchoService. Verifica que los métodos generados expongan los metadatos de la request junto con los campos de request existentes, y añade o actualiza la prueba de generación relevante si alguna cubre esta salida.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, tooling
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.