[PYTHON] mémo graphène

Il n'est pas complété par le "graphène" lui-même, mais en fait, des bibliothèques telles que "graphql-core" et "graphql-relay" sont cachées sous "graphene". GraphQL est un portage de graphql-core car il est populaire dans l'environnement JavaScript depuis sa création. La bibliothèque principale, graphql, est plus facile à utiliser en termes de python, et est appelée graphène. Quand vous pensez "il n'y a pas assez de description" dans le document graphène, c'est en fait la partie explication de la bibliothèque inférieure. Finalement, vous pouvez trouver la réponse en retournant à Implémentation de référence.

La procédure de définition du champ de graphène est facile à ajouter avec mixin. Le style mixin est recommandé car il peut être un piège lorsque vous essayez d'utiliser l'héritage de classe.

graphene.relay: Le relais lui-même est une spécification supplémentaire basée sur GraphQL. Comme il est largement utilisé, il est moins déroutant de le traiter fondamentalement. Les interfaces «Connection» et «Node» se démarquent.

Node interface Dans Node, un seul objet peut être extrait de ʻid` via une requête de nœud. Comme il n'est pas visible par défaut, Préparez si nécessaire. Si un tel chemin d'accès n'est pas souhaitable (pour des raisons de sécurité, par exemple), l'implémentation peut être omise.

Vous pouvez importer avec graphene.Node sans accéder avec graphene.relay.Node.

Connection interface Total_count of Connection n'est pas pris en charge par la bibliothèque. Si vous vous en occupez séparément, il y aura moins de problèmes. Par exemple, graphène-sqlalchemy peut devoir être dérivé de l'objet de requête, il est donc présumé qu'il est intentionnellement isolé.

https://github.com/graphql-python/graphene/issues/776 https://github.com/graphql-python/graphene-django/issues/162

Avec le support de relay.Connection, les métadonnées du côté relay.Node sont supposées déclarer qu'elles prennent en charge les interfaces Node. Dans graphene_sqlalchemy.SQLAlchemyConnection, si vous mettez une déclaration d'interfaceNode, cela provoquera une double définition, alors faites-le bien (actuellement, il semble bon de survivre avec une réponse de type hack).

Vous pouvez sortir du trap d'ordre de déclaration en retardant le premier argument de ConnectionField avec lambda:.

Recommended Posts

mémo graphène
mémo gzip
Mémo Raspberry-pi
Mémo Pandas
Mémo HackerRank
Mémo Python
mémo python
Mémo du flacon
mémo pyenv
Mémo Matplotlib
mémo pytest
mémo sed
Mémo Python
Installer Memo
Mémo BeautifulSoup4
mémo networkx
mémo python
mémo Tomcat
mémo de commande
Mémo du générateur.
mémo psycopg2
Mémo Python
Mémo SSH
Mémo: rtl8812
mémo pandas
Mémo Shell
Mémo Python
Mémo Pycharm
Mémo de dévotion AtCoder (11/12)
[OpenCV] Mémo personnel
[Python] Mémo sur le dictionnaire
Mémo push PyPI
mémo d'introduction tensorflow-gpu
Note d'étude LPIC201
Mémo Jupyter Notebook
Mémo de virtualisation LPIC304
Mémo d'exécution ALDA
mémo débutant python (9.2-10)
youtube télécharger un mémo
Inu x Memo
Mémo d'apprentissage Django
ARC # 016 Mémo de participation
Belle note de soupe
Note d'étude LPIC101
mémo débutant python (9.1)
mémo Linux (ubuntu)
mémo de commande scp
Mémo Primer Flask
mémo céleri / kombu
qui commande mémo
mémo du didacticiel django
Mémo de base Flask
Mémo de commande Linux # 1
★ Mémo ★ Python Iroha
Mémo de reconnaissance du genre
Mémo de lecture d'image
[MEMO] [TERMINAL] Alacritty
Mémo de rotation 3D (1)
[Python] Mémo EDA