# GraphQL
Da **FastAPI** auf dem **ASGI**-Standard basiert, ist es sehr einfach, jede **GraphQL**-Bibliothek zu integrieren, die auch mit ASGI kompatibel ist.
Sie können normale FastAPI-*Pfadoperationen* mit GraphQL in derselben Anwendung kombinieren.
/// tip | Tipp
**GraphQL** löst einige sehr spezifische Anwendungsfälle.
Es hat **Vorteile** und **Nachteile** im Vergleich zu gängigen **Web-APIs**.
Wiegen Sie ab, ob die **Vorteile** für Ihren Anwendungsfall die **Nachteile** ausgleichen. 🤓
///
## GraphQL-Bibliotheken
Hier sind einige der **GraphQL**-Bibliotheken, welche **ASGI** unterstützen. Diese könnten Sie mit **FastAPI** verwenden:
* Strawberry 🍓
* Mit Dokumentation für FastAPI
* Ariadne
* Mit Dokumentation für FastAPI
* Tartiflette
* Mit Tartiflette ASGI, für ASGI-Integration
* Graphene
* Mit starlette-graphene3
## GraphQL mit Strawberry
Wenn Sie mit **GraphQL** arbeiten möchten oder müssen, ist **Strawberry** die **empfohlene** Bibliothek, da deren Design dem Design von **FastAPI** am nächsten kommt und alles auf **Typannotationen** basiert.
Abhängig von Ihrem Anwendungsfall bevorzugen Sie vielleicht eine andere Bibliothek, aber wenn Sie mich fragen würden, würde ich Ihnen wahrscheinlich empfehlen, **Strawberry** auszuprobieren.
Hier ist eine kleine Vorschau, wie Sie Strawberry mit FastAPI integrieren können:
{* ../../docs_src/graphql/tutorial001.py hl[3,22,25:26] *}
Weitere Informationen zu Strawberry finden Sie in der Strawberry-Dokumentation.
Und auch die Dokumentation zu Strawberry mit FastAPI.
## Ältere `GraphQLApp` von Starlette
Frühere Versionen von Starlette enthielten eine `GraphQLApp`-Klasse zur Integration mit Graphene.
Das wurde von Starlette deprecated, aber wenn Sie Code haben, der das verwendet, können Sie einfach zu starlette-graphene3 **migrieren**, welches denselben Anwendungsfall abdeckt und über eine **fast identische Schnittstelle** verfügt.
/// tip | Tipp
Wenn Sie GraphQL benötigen, würde ich Ihnen trotzdem empfehlen, sich Strawberry anzuschauen, da es auf Typannotationen basiert, statt auf benutzerdefinierten Klassen und Typen.
///
## Mehr darüber lernen
Weitere Informationen zu **GraphQL** finden Sie in der offiziellen GraphQL-Dokumentation.
Sie können auch mehr über jede der oben beschriebenen Bibliotheken in den jeweiligen Links lesen.