GraphQL: automatisch generiert, im Überblick
GraphQL: automatisch generiert, im Überblick
~13 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
NEBEN REST generiert API Platform AUS DENSELBEN #[ApiResource]-Attributen AUCH einen VOLLSTÄNDIGEN GraphQL-Endpunkt – OHNE eine EINZIGE zusätzliche Codezeile.
GraphQL aktivieren
docker compose exec php composer require webonyx/graphql-phpDie api-platform-Distribution bringt dieses Paket oft BEREITS mit – falls NICHT, installiert der Befehl es NACHTRÄGLICH. ANSCHLIESSEND ist /api/graphql SOFORT verfügbar, für JEDE bestehende Resource.
GraphiQL erkunden
/api/graphql im Browser öffnet GraphiQL – GENAU das GraphQL-Äquivalent zu Swagger UI (Kapitel 6), MIT interaktivem Query-Editor und automatischer Schema-Dokumentation.
Eine erste Query
query {
projects(first: 5) {
edges {
node {
id
name
tasks {
totalCount
}
}
}
}
}GENAU EINE Anfrage liefert Projekte MITSAMT ihrer Task-ANZAHL – bei REST wären dafür ENTWEDER mehrere Requests ODER ein eigens gebautes DTO (Kapitel 59) nötig gewesen. DAS ist der KLASSISCHE GraphQL-Vorteil: der CLIENT bestimmt, WELCHE Felder er braucht.
Filter und Security bleiben erhalten
SearchFilter/OrderFilter (Block 4), security-Attribute (Block 6) UND eigene Voter WIRKEN in GraphQL GENAUSO wie in REST – DIESELBE Metadaten-Konfiguration steuert BEIDE Protokolle GLEICHZEITIG.
Mutations für Schreiboperationen
mutation {
createProject(input: { name: "Neues Projekt via GraphQL" }) {
project {
id
name
}
}
}GraphQL-Mutations entsprechen den POST/PUT/PATCH/DELETE-Operationen aus REST – dieselbe Validierung (Block 3) greift, Fehler erscheinen als errors-Array in der GraphQL-Antwort statt als HTTP-Statuscode.
Achtung: DIESE Schulung fokussiert BEWUSST auf REST, da das React-Frontend (Block 9-10) REST konsumiert – GraphQL wird hier NUR als VORHANDENE Möglichkeit vorgestellt, NICHT vertieft. Wer GraphQL im Frontend nutzen möchte, würde @apollo/client statt axios einsetzen.
Tipp: GraphQL UND REST können GLEICHZEITIG aktiv bleiben, für DIESELBEN Ressourcen – manche Clients (z. B. eine mobile App mit begrenzter Bandbreite) profitieren von GraphQLs präziser Feldauswahl, andere (z. B. einfache Integrationen) bevorzugen die EINFACHHEIT von REST.