Ariadne est une bibliothèque Python pour implémenter des serveurs GraphQL.
Le schéma d'abord : Ariadne permet aux développeurs Python d'utiliser une approche axée sur le schéma pour l'implémentation de l'API. Il s'agit de l'approche principale utilisée par la communauté GraphQL et soutenue par des dizaines d'outils de développement front-end et back-end, des exemples et des ressources d'apprentissage. Ariadne met tout cela immédiatement à votre disposition, ainsi qu'aux autres membres de votre équipe.
Simple : Ariadne propose une API petite, cohérente et facile à mémoriser qui permet aux développeurs de se concentrer sur les problèmes commerciaux, et non sur le passe-partout.
Ouvert : Ariadne a été conçu pour être modulaire et ouvert à la personnalisation. Si vous manquez ou n'êtes pas satisfait de quelque chose, prolongez ou échangez facilement avec le vôtre.
La documentation est disponible ici.
API simple, rapide à apprendre et facile à mémoriser.
Compatibilité avec GraphQL.js version 15.5.1.
Requêtes, mutations et types d'entrée.
Résolveurs asynchrones et exécution de requêtes.
Abonnements.
Scalaires personnalisés, énumérations et directives de schéma.
Unions et interfaces.
Téléchargements de fichiers.
Définition d'un schéma à l'aide de chaînes SDL.
Chargement du schéma à partir des fichiers .graphql
, .gql
et .graphqls
.
Middleware WSGI pour implémenter GraphQL dans les sites existants.
Extensions Apollo Tracing et OpenTracing pour la surveillance des API.
Mappage des résolveurs automatiques opt-in entre camelCase
et snake_case
, et un décorateur de fonction @convert_kwargs_to_snake_case
pour convertir les kwargs camelCase
en snake_case
.
Serveur de développement synchrone simple intégré pour une expérimentation rapide de GraphQL et de GraphQL Playground.
Prise en charge de l'extension Apollo GraphQL pour Visual Studio Code.
Validation de la syntaxe GraphQL via la fonction d'assistance gql()
. Fournit également la colorisation si l'extension Apollo GraphQL est installée.
Pas de registre global d'état ou d'objets, prise en charge de plusieurs API GraphQL dans la même base de code avec réutilisation de type explicite.
Prise en charge de Apollo Federation
.
Ariane peut être installée avec pip :
pip installer Ariane
Ariadne nécessite Python 3.7 ou supérieur.
L'exemple suivant crée une API définissant le type Person
et people
champ de requête unique renvoyant une liste de deux personnes. Il démarre également un serveur de développement local avec GraphQL Playground disponible à l'adresse http://127.0.0.1:8000
.
Commencez par installer uvicorn, un serveur ASGI que nous utiliserons pour servir l'API :
pip installer uvicorne
Créez ensuite un fichier example.py
pour votre exemple d'application :
from ariadne import ObjectType, QueryType, gql, make_executable_schemafrom ariadne.asgi import GraphQL# Définir les types à l'aide du langage de définition de schéma (https://graphql.org/learn/schema/)# L'emballage de la chaîne dans la fonction gql fournit une validation et une meilleure erreur tracebacktype_defs = gql (""" tapez Requête { personnes : [Personne !]! } tapez Personne { firstName : String lastName : String age: Int fullName: String }""")# Mapper les fonctions du résolveur aux champs de requête à l'aide de QueryTypequery = QueryType()# Les résolveurs sont de simples fonctions [email protected]("people")def solve_people(*_):return [ {"firstName": "Jean", "lastName": "Biche", "age": 21}, {"firstName": "Bob", "lastName": "Boberson", "age": 24}, ]# Mappez les fonctions du résolveur aux champs de type personnalisé à l'aide de ObjectTypeperson = ObjectType("Person")@person.field("fullName")def solve_person_fullname(person, *_):return "%s %s" % (person["firstName" ], person["lastName"])# Créer un schéma exécutable GraphQL = make_executable_schema(type_defs, query, person)# Créer une application ASGI à l'aide du schéma, exécuté en mode débogageapp = GraphQL(schema, debug=True)
Enfin, lancez le serveur :
Exemple de vicorne : application
Pour plus de guides et d’exemples, veuillez consulter la documentation.
Nous accueillons les contributions à Ariadne ! Si vous avez trouvé un bug ou un problème, n'hésitez pas à utiliser les problèmes GitHub. Si vous avez des questions ou des commentaires, n'hésitez pas à nous rejoindre sur les discussions GitHub.
Pour obtenir des conseils et des instructions, veuillez consulter CONTRIBUTING.md.
Le site Web et les documents ont leur propre référentiel GitHub : mirumee/ariadne-website
Assurez-vous également de suivre @AriadneGraphQL sur Twitter pour les dernières mises à jour, actualités et réflexions aléatoires !
Fabriqué avec ❤️ par Mirumee Software [email protected]