Ajoute la prise en charge de GraphQL à votre application FLASK.
Utilisez simplement la vue GraphQLView depuis flask_graphql
from flask import Flask
from flask_graphql import GraphQLView
from schema import schema
app = Flask ( __name__ )
app . add_url_rule ( '/graphql' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
graphiql = True ,
))
# Optional, for adding batch query support (used in Apollo-Client)
app . add_url_rule ( '/graphql/batch' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
batch = True
))
if __name__ == '__main__' :
app . run () Cela ajoutera /graphql Endpoint à votre application et permettra l'ide Graphiql.
Si vous utilisez le type Schema de la bibliothèque Graphène, assurez-vous d'utiliser l'attribut graphql_schema pour passer en tant que schéma sur la vue GraphQLView . Sinon, le GraphQLSchema de graphql-core est la voie à suivre.
Plus d'informations sur Graphène V3 Release Notes et GraphQL-Core 3 Utilisation.
schema : l'objet GraphQLSchema que vous souhaitez que la vue exécute lorsqu'il obtient une demande valide.context : une valeur à passer comme context_value à graphQL execute la fonction. Par défaut est défini sur dict avec l'objet de demande à request clé.root_value : root_value que vous souhaitez fournir à GraphQL execute .pretty : que vous souhaitiez ou non que la réponse soit assez imprimée JSON.graphiql : Si True , peut présenter Graphiql lorsqu'il est chargé directement à partir d'un navigateur (un outil utile pour le débogage et l'exploration).graphiql_version : la version Graphiql à charger. Par défaut "1.0.3" .graphiql_template : injectez une chaîne de modèle Jinja pour personnaliser Graphiql.graphiql_html_title : le titre graphiql à afficher. Par défaut "Graphiql" .batch : définissez la vue GraphQL en tant que lot (pour l'utilisation dans Apollo-Client ou ReactrelayNetWorklayer)middleware : une liste de GraphQL Middlewares.encode : l'encodeur à utiliser pour les réponses (sensiblement par défaut graphql_server.json_encode ).format_error : le formateur d'erreur à utiliser pour les réponses (sensiblement par défaut graphql_server.default_format_error .subscriptions : le point de terminaison du socket graphiql pour l'utilisation d'abonnements dans GraphQL-WS.headers : une chaîne GraphQL en option à utiliser comme en-têtes de demande initiale affichée, si elle n'est pas fournie, les en-têtes stockés seront utilisés.default_query : une chaîne GraphQL en option à utiliser lorsqu'aucune requête n'est fournie et qu'aucune requête stockée n'existe d'une session précédente. S'il n'est pas fourni, GraphiQL utilisera sa propre requête par défaut.header_editor_enabled : un booléen optionnel qui permet à l'éditeur d'en-tête lorsque vous true. Par défaut est faux .should_persist_headers : un booléen optionnel qui permet de persister les en-têtes de stocker lorsqu'il est vrai. Par défaut est faux . Vous pouvez également sous-classer GraphQLView et écraser get_root_value(self, request) pour avoir une valeur racine dynamique par demande.
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user Depuis V3, le code flask-graphql vit au référentiel GraphQL-Server pour maintenir tout changement de rupture sur le package de base en synchronisation avec toutes les autres intégrations. Afin de contribuer, veuillez jeter un coup d'œil à contribuer.md.