Magento 2 Experten — Hyvä Theme, Tailwind CSS & SEO aus einer Hand ›

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-php

Die 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.