Add a default values for rpc with empty message
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- grpc, python
- Domaine
- api, backend-api-design
Piste de recherche
Aucun fichier ni test n’est identifié dans l’issue. Commencez par localiser les signatures des méthodes RPC Python générées et la gestion actuelle de google.protobuf.Empty ou des messages sans champ ; le travail est terminé lorsque les RPC utilisant des messages vides peuvent être appelés sans argument, tandis que les appels existants avec des messages explicites continuent de fonctionner.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The Problem
Sometimes, it is needed to declare RPCs that take no parameter. However, it is not possible in gRPC. In such a situation, it is needed to either create an empty message type, or to use google.protobuf.Empty ( https://stackoverflow.com/questions/29687243/protobuf-rpc-service-method-without-parameters ).
However, this is not convenient for the final user: an empty message need to be created and passed to the method each time. It also makes it necessary to add potentially long imports.
The Ideal Solution
To make this easier, it would be better to add a default value for the parameter containing the request when it is possible. I see two possibilities:
- Add the default value only for
google.protobug.Empty - Add the default value for all the messages who have no field at all
I think the second solution would be better as it is common to define empty messages in such situations. I can make a PR if you agree, I already have a working version locally.
The Current Solution
Currently, it is necessary for the user to import by hand from betterproto.lib.std.google.protobuf import Empty or the custom message, which is not convenient.
The feature would turn:
from betterproto.lib.std.google.protobuf import Empty
answer = TestStub().call(Empty())
To something like:
answer = TestStub().call()
- Langage dominant
- Python
- Étoiles
- 1.8k
- Forks
- 235
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de danielgtaylor/python-betterproto
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
-
bug investigation needed
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
-
bug investigation needed
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
-
bug investigation needed
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
danielgtaylor/python-betterproto#676 · 3 commentaires ·
Toutes les issues de danielgtaylor/python-betterproto
Issues similaires
-
bug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
yunaremaia/proto-drift#22 ·
-
bug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
yunaremaia/memwatch#96 ·
-
bug good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 91/100
yunaremaia/ci-gate-watch#34 ·
-
bug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
yunaremaia/agent-capability-attestation#64 ·
Les mainteneurs répondent en général sous 1 jour
-
bug good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 86/100
yunaremaia/agent-call-graph#43 ·
Les mainteneurs répondent en général sous 1 jour