Ariadne ist eine Python-Bibliothek zur Implementierung von GraphQL-Servern.
Schema-First: Ariadne ermöglicht Python-Entwicklern die Verwendung eines Schema-First-Ansatzes für die API-Implementierung. Dies ist der führende Ansatz der GraphQL-Community und wird von Dutzenden Frontend- und Backend-Entwicklertools, Beispielen und Lernressourcen unterstützt. All dies stellt Ariadne Ihnen und anderen Mitgliedern Ihres Teams sofort zur Verfügung.
Ganz einfach: Ariadne bietet eine kleine, konsistente und leicht zu merkende API, die es Entwicklern ermöglicht, sich auf geschäftliche Probleme zu konzentrieren und nicht auf das Boilerplate.
Offen: Ariadne wurde modular und offen für individuelle Anpassungen konzipiert. Wenn Ihnen etwas fehlt oder Sie mit etwas unzufrieden sind, verlängern Sie es oder tauschen Sie es einfach durch Ihr eigenes aus.
Die Dokumentation finden Sie hier.
Einfache, schnell zu erlernende und leicht zu merkende API.
Kompatibilität mit GraphQL.js Version 15.5.1.
Abfragen, Mutationen und Eingabetypen.
Asynchrone Resolver und Abfrageausführung.
Abonnements.
Benutzerdefinierte Skalare, Enumerationen und Schemadirektiven.
Gewerkschaften und Schnittstellen.
Datei-Uploads.
Definieren eines Schemas mithilfe von SDL-Zeichenfolgen.
Laden des Schemas aus .graphql
, .gql
und .graphqls
Dateien.
WSGI-Middleware zur Implementierung von GraphQL in vorhandenen Sites.
Apollo Tracing- und OpenTracing-Erweiterungen für die API-Überwachung.
Opt-in-automatische Resolver-Zuordnung zwischen camelCase
und snake_case
und ein @convert_kwargs_to_snake_case
-Funktionsdekorator zum Konvertieren camelCase
Kwargs in snake_case
.
Integrierter einfacher synchroner Entwicklungsserver für schnelle GraphQL-Experimente und GraphQL Playground.
Unterstützung für die Apollo GraphQL-Erweiterung für Visual Studio Code.
GraphQL-Syntaxvalidierung über die Hilfsfunktion gql()
. Bietet auch Kolorierung, wenn die Apollo GraphQL-Erweiterung installiert ist.
Keine globale Status- oder Objektregistrierung, Unterstützung für mehrere GraphQL-APIs in derselben Codebasis mit expliziter Typwiederverwendung.
Unterstützung für Apollo Federation
.
Ariadne kann mit pip installiert werden:
pip installiere Ariadne
Ariadne erfordert Python 3.7 oder höher.
Im folgenden Beispiel wird eine API erstellt, die Person
und das einzelne Abfragefeld people
definiert und eine Liste mit zwei Personen zurückgibt. Außerdem wird ein lokaler Entwicklungsserver mit GraphQL Playground gestartet, der unter der Adresse http://127.0.0.1:8000
verfügbar ist.
Beginnen Sie mit der Installation von uvicorn, einem ASGI-Server, den wir zur Bereitstellung der API verwenden werden:
pip Uvicorn installieren
Erstellen Sie dann eine example.py
Datei für Ihre Beispielanwendung:
from ariadne import ObjectType, QueryType, gql, make_executable_schemafrom ariadne.asgi import GraphQL# Definieren Sie Typen mit der Schema Definition Language (https://graphql.org/learn/schema/)# Das Einschließen einer Zeichenfolge in die gql-Funktion sorgt für Validierung und bessere Fehlerverfolgung. type_defs = gql (""" type Query { people: [Person!]! } type Person { firstName: String lastName: String age: Int fullName: String }""")# Ordnen Sie Resolver-Funktionen mithilfe von QueryType Abfragefeldern zuquery = QueryType()# Resolver sind einfache [email protected]("people")def restart_people(*_):return [ {"firstName": "John", "lastName": "Doe", "age": 21}, {"firstName": "Bob", "lastName": "Boberson", "age": 24}, ]# Ordnen Sie Resolver-Funktionen benutzerdefinierten Typfeldern zu, indem Sie ObjectTypeperson = ObjectType("Person")@person.field("fullName")def restart_person_fullname(person, *_):return "%s %s" % (person["firstName" verwenden) ], person["lastName"])# Ausführbare GraphQL-Datei erstellen schemaschema = make_executable_schema(type_defs, query, person)# Erstellen Sie eine ASGI-App mit dem Schema, die im Debug-Modus ausgeführt wirdapp = GraphQL(schema, debug=True)
Führen Sie abschließend den Server aus:
uvicorn-Beispiel:app
Weitere Anleitungen und Beispiele finden Sie in der Dokumentation.
Wir freuen uns über Beiträge zu Ariadne! Wenn Sie einen Fehler oder ein Problem gefunden haben, können Sie gerne GitHub-Probleme verwenden. Wenn Sie Fragen oder Feedback haben, zögern Sie nicht, uns in den GitHub-Diskussionen zu erreichen.
Anleitungen und Anweisungen finden Sie unter CONTRIBUTING.md.
Die Website und die Dokumente verfügen über ein eigenes GitHub-Repository: mirumee/ariadne-website
Folgen Sie außerdem unbedingt @AriadneGraphQL auf Twitter, um die neuesten Updates, Neuigkeiten und zufälligen Überlegungen zu erhalten!
Erstellt mit ❤️ von Mirumee Software [email protected]