Python GraphQL-Bibliothek basierend auf Datenklassen
Die Schnellstartmethode stellt einen Server und eine CLI bereit, um schnell loslegen zu können. Installieren mit:
pip install " strawberry-graphql[debug-server] "
Erstellen Sie eine Datei namens app.py
mit dem folgenden Code:
import strawberry
@ strawberry . type
class User :
name : str
age : int
@ strawberry . type
class Query :
@ strawberry . field
def user ( self ) -> User :
return User ( name = "Patrick" , age = 100 )
schema = strawberry . Schema ( query = Query )
Dadurch wird ein GraphQL-Schema erstellt, das einen User
und ein einzelnes Abfragefeld user
definiert, das einen fest codierten Benutzer zurückgibt.
Um den Debug-Server auszuführen, führen Sie den folgenden Befehl aus:
strawberry server app
Öffnen Sie den Debug-Server, indem Sie auf den folgenden Link klicken: http://0.0.0.0:8000/graphql
Dadurch wird GraphiQL geöffnet, wo Sie die API testen können.
Strawberry wird mit einem Mypy-Plugin geliefert, das eine statische Typprüfung Ihres GraphQL-Schemas ermöglicht. Um es zu aktivieren, fügen Sie die folgenden Zeilen zu Ihrer mypy.ini
-Konfiguration hinzu:
[mypy]
plugins = strawberry.ext.mypy_plugin
Zum Hinzufügen eines GraphQL-Endpunkts zu Ihrer Anwendung wird eine Django-Ansicht bereitgestellt.
INSTALLED_APPS
hinzu. INSTALLED_APPS = [
..., # your other apps
"strawberry.django" ,
]
urls.py
Datei hinzu. from strawberry . django . views import GraphQLView
from . schema import schema
urlpatterns = [
...,
path ( "graphql" , GraphQLView . as_view ( schema = schema )),
]
Um Graphql-Abonnements über WebSockets zu unterstützen, müssen Sie einen WebSocket-fähigen Server bereitstellen. Mit den folgenden Befehlen kann der Debug-Server so eingestellt werden, dass er WebSockets unterstützt:
pip install ' strawberry-graphql[debug-server] '
pip install ' uvicorn[standard] '
Wir verwenden Poesie, um Abhängigkeiten zu verwalten. Führen Sie zunächst die folgenden Schritte aus:
git clone https://github.com/strawberry-graphql/strawberry
cd strawberry
poetry install --with integrations
poetry run pytest
Weitere Einzelheiten finden Sie auf der Beitragsseite
Wir haben eine Konfiguration für das Pre-Commit. Um den Hook hinzuzufügen, führen Sie den folgenden Befehl aus:
pre-commit install
Der Code in diesem Projekt ist unter MIT-Lizenz lizenziert. Weitere Informationen finden Sie unter LIZENZ.