How to get GraphQL error objects using GraphQLView in 2.0.0?
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 30/100
Piste de recherche
Examinez la refactorisation de GraphQLView dans la version 2.0.0, en particulier dispatch_request, et comparez-la à l’ancien chemin execute_graphql_request décrit dans l’issue. Déterminez si la vue refactorisée peut exposer les objets d’erreur d’origine et les stack traces pour le reporting Raygun ; c’est considéré comme terminé lorsque les erreurs restent disponibles avant la sérialisation JSON.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hello,
We are using this library to add graphql support to our flask app. We used to have version 1.3.1 installed and the following view code was working correctly:
class AppGraphQLView(GraphQLView):
def execute_graphql_request(self, *args, **kwargs):
"""Extract any exceptions and send them to Raygun"""
result = super().execute_graphql_request(*args, **kwargs)
if result is not None and result.errors:
send_errors_to_raygun(result.errors)
return result
We've recently updated to version 2.0.0 of this library, and this caused our errors to not be sent to raygun, because our function is no longer called.. I discovered that the whole of GraphQLView has been refactored to not include execute_graphql_request anymore so I tried using dispatch_request instead.
However, dispatch_request returns a json object and any errors have only the message, no stacktrace or any other important information we would need to send to raygun.
I have tried to replicate this functionality without overwriting GraphQLView's implementation of execute_graphql_request, by using middleware instead:
def error_reporting_middleware(next, root, info, **kwargs):
result = next(root, info, **kwargs)
if result.is_rejected:
send_errors_to_raygun([result.reason])
return result
This kinda works, but I was wondering if there is a similar way to do it using the refactored GraphQLView in v2.0.0.
Thanks!
- Langage dominant
- Python
- Étoiles
- 1.3k
- Forks
- 138
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
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 graphql-python/flask-graphql
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
graphql-python/flask-graphql#92 · 2 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
-
which graphiql version is using?Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
graphql-python/flask-graphql#85 · 2 commentaires · 1 réaction ·
-
CSRF Exemption?Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
graphql-python/flask-graphql#84 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
graphql-python/flask-graphql#80 · 9 commentaires · 2 réactions ·
Toutes les issues de graphql-python/flask-graphql
Issues similaires
-
area:space-accuracy good first issue track:data
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Sara-Managed-Projects/space-radar#904 ·
Les mainteneurs répondent en général sous 1 jour