Was ist GraphQL?
GraphQL ist eine Abfragesprache für APIs und eine Laufzeitumgebung zur Ausführung dieser Abfragen. Clients können exakt die Daten anfordern, die sie benötigen. Dadurch werden Overfetching und Underfetching vermieden.
Was ist der Unterschied zwischen GraphQL und REST?
REST nutzt mehrere Endpunkte für unterschiedliche Ressourcen. GraphQL bietet einen einzigen Endpunkt mit flexiblen Abfragen. Der Client bestimmt die Struktur der Antwort.
Was ist ein GraphQL Schema?
Das Schema definiert die Struktur der API. Es beschreibt Typen, Felder und Beziehungen. Das Schema ist der Vertrag zwischen Client und Server.
Was sind Types in GraphQL?
Types beschreiben die Form der Daten. Sie definieren Felder und deren Datentypen. Beispiele sind Object Types oder Scalar Types.
Was sind Queries in GraphQL?
Queries dienen zum Lesen von Daten. Sie ähneln GET-Anfragen in REST. Die Struktur der Antwort entspricht exakt der Query.
Was sind Mutations in GraphQL?
Mutations ändern Daten auf dem Server. Sie entsprechen POST PUT oder DELETE in REST. Sie können ebenfalls strukturierte Antworten liefern.
Was sind Subscriptions in GraphQL?
Subscriptions ermöglichen Echtzeit-Kommunikation. Clients erhalten Updates bei Datenänderungen. Sie basieren häufig auf WebSockets.
Was ist ein Resolver?
Ein Resolver ist eine Funktion, die ein Feld mit Daten füllt. Er enthält die Logik zum Abrufen der Daten. Resolver sind das Herzstück der GraphQL-Ausführung.
Was sind Scalar Types?
Scalar Types sind primitive Datentypen. Beispiele sind String Int Boolean oder ID. Sie bilden die Basis der Typdefinitionen.
Was ist ein Custom Scalar?
Custom Scalars erlauben eigene Datentypen. Beispiele sind Date oder UUID. Sie benötigen eigene Validierungslogik.
Was ist Overfetching und Underfetching?
Overfetching bedeutet, dass zu viele Daten geladen werden. Underfetching erfordert mehrere Requests für benötigte Daten. GraphQL löst beide Probleme.
Was ist N+1 Problem in GraphQL?
Das N+1 Problem entsteht durch viele abhängige Resolver-Aufrufe. Es führt zu Performanceproblemen. DataLoader wird häufig zur Lösung eingesetzt.
Was ist DataLoader?
DataLoader bündelt und cached Datenbankabfragen. Er reduziert redundante Zugriffe. Das verbessert Performance erheblich.
Wie wird Authentifizierung in GraphQL umgesetzt?
Authentifizierung erfolgt meist über HTTP-Header. JWT oder OAuth2 werden häufig verwendet. Der Kontext wird im Resolver geprüft.
Wie wird Autorisierung in GraphQL umgesetzt?
Autorisierung erfolgt auf Resolver-Ebene. Rollen und Berechtigungen werden geprüft. Feingranulare Kontrolle ist möglich.
Was ist Schema Stitching?
Schema Stitching kombiniert mehrere GraphQL-Schemas. Sie erscheinen als eine API. Das ist nützlich bei Microservices.
Was ist Federation?
Federation verteilt ein Schema über mehrere Services. Jeder Service besitzt einen Teil des Schemas. Ein Gateway führt sie zusammen.
Wie wird Versionierung in GraphQL gehandhabt?
GraphQL verzichtet meist auf Versionierung. Änderungen erfolgen über neue Felder. Alte Felder werden als deprecated markiert.
Was sind Vorteile von GraphQL?
Flexibilität für Clients ist der größte Vorteil. Weniger Requests sind nötig. Die API ist stark typisiert.
Was sind Nachteile von GraphQL?
Komplexität auf Server-Seite ist höher. Caching ist schwieriger als bei REST. Fehlende Erfahrung kann zu Performanceproblemen führen.
Zuletzt geändertvor einem Monat