Articles

Diese Seite zeigt Beispiele für verschiedene GET-Anfragen für das JSON:API-Modul.
In allen untenstehenden Beispielen sind keine Anfrage-Header erforderlich. Keine Authentifizierung ist notwendig, wenn anonyme Benutzer auf Inhaltsentitäten zugreifen dürfen. Für Konfigurationsentitäten wie Menüs siehe die letzten Abschnitte.
Beachte, dass in allen Fällen, in denen eine id benötigt wird, immer die UUID der Entität, nicht die numerische ID verwendet wird.


Diese Seite zeigt Beispiele für verschiedene POST-Anfragen für das JSON:API-Modul.
POST-Anfragen werden verwendet, um neue Ressourcen zu erstellen. Wenn du Ressourcen ändern möchtest, musst du stattdessen PATCH verwenden.


Diese Seite zeigt Beispiele für PATCH-Anfragen für das JSON:API-Modul.
Update-Operation aktivieren
Gehe zu /admin/config/services/jsonapi
und aktiviere die Option „Alle JSON:API-Operationen zum Erstellen, Lesen, Aktualisieren und Löschen akzeptieren“.


Diese Seite zeigt Beispiele für DELETE-Anfragen für das JSON:API-Modul.
Löschen-Operation aktivieren
Gehe zu /admin/config/services/jsonapi
und aktiviere die Option „Alle JSON:API-Operationen zum Erstellen, Lesen, Aktualisieren und Löschen akzeptieren“.


Manche Websites möchten bestimmte JSON:API-Ressourcentypen oder Felder nicht exponieren oder Felder umbenennen, um eine sauberere Schnittstelle bereitzustellen.
Um diese Anpassungen zu ermöglichen, löst JSON:API ein ResourceTypeBuildEvent
-Objekt mit dem Ereignisnamen ResourceTypeBuildEvents::BUILD
aus. Siehe Subscribe to and dispatch events für weitere Informationen zur Nutzung von Events.


Datei-Uploads werden jetzt unterstützt, siehe die Release Notes für weitere Informationen: https://www.drupal.org/node/3024331
Die folgenden zwei Bilder zeigen, wie man mit Postman den Datei-Upload per JSON:API testet:


TL;DR
Wähle REST, wenn du nicht-entitybezogene Daten bereitstellen möchtest. In allen anderen Fällen wähle JSON:API.
Etwas differenzierter:


JSON:API ist vollständig entitätsbasiert. Das bedeutet, es kann keine Geschäftslogik verarbeiten oder Dinge tun, die nicht als "CRUD" (Create, Read, Update, Delete) verstanden werden können. Geschäftslogik wie das Registrieren eines neuen Kontos, das Einloggen eines Benutzers oder das Anfordern eines neuen Passworts sind nicht Teil von JSON:API. Viele dieser Funktionen werden bereits vom Drupal Core bereitgestellt.
Eine nicht abschließende Liste häufiger Anforderungen und Lösungen findest du unten.


Umbenennen und Deaktivieren von Ressourcen und Feldern ist jetzt Teil des Drupal-Core.
Wenn du Eigenschaften von Ressourcen wie den API-Pfad, Ressourcenanzahl oder Standardwerte für Includes ändern möchtest, oder eine Oberfläche suchst, um Felder oder Ressourcen zu deaktivieren, nutze das Modul JSON:API Extras.


Das JSON:API-Modul wurde entwickelt, um das in Drupal über die Entity API, Field API und Typed Data API definierte Datenmodell über eine API bereitzustellen, die der JSON:API-Spezifikation entspricht. Damit wird die Interaktion mit den von Drupal verwalteten Daten (Entities) erleichtert.
Dabei werden alle Drupal-Sicherheitsmechanismen für diese Daten beachtet:
