Als Kodierungsschema ist JSON (JavaScript Object Notation) so konzipiert, dass es den Bedarf an Ad-hoc-Code für die Kommunikation mit Servern überflüssig macht. Ziel ist es, die Effizienz der Reibung von Anfragen zwischen Clients und Servern zu verbessern.
„Das aktuelle JSON:API 2.0 Stable Release vom 7. Januar 2019 markierte den Beginn der Migration des Moduls in den Drupal-Kern.“
Die Entity-basierte JSON:API schreibt vor, wie ein Client die abzurufenden Ressourcen anfordern und wie ein Server auf die Anfragen antworten soll. Sie kümmert sich jedoch nicht um Geschäftsaufgaben wie die Registrierung eines neuen Kontos, die Anmeldung eines Benutzers oder die Anforderung eines neuen Passworts.
Lasst uns in diesem Blog die Reise von JSON:API mit Drupal entschlüsseln!

Die Reise mit Drupal
Im Jahr 2015 kam Drupal 8 mit einer REST-API als erster Schritt in Richtung einer API-First-Drupal-Zukunft, die mit den nachfolgenden Releases im Laufe der Zeit verbessert wurde. Und als Ergebnis führte die API-First-Drupal-Initiative zum folgenden Ökosystem von Projekten. Einige davon sind:
- Contributed Modules: GraphQL, Simple OAuth, Open API, Consumers, RELAXed Web Services, Subrequests usw.
- Entkoppelte Distributionen: Contenta CMS, Reservoir und Headless Lightning
Von diesen hat es das JSON:API Contributed Module in den Drupal-Kern geschafft!
Das Modul wurde im Wesentlichen von Mateu Aguiló Bosch (e0ipso) erstellt und gewartet und von Dries Buytaert gelobt, der das Contributed Module 2017 für den Drupal 8-Kern empfahl. Er bat Wim Leers und Gabe Sullice um Hilfe bei der Vorbereitung des Moduls.
28 Monate, 450 Commits, 32 Releases und mehr als 5.500 Testläufe später wurde die JSON:API in den Drupal 8.7-Branch übernommen.
Wichtig: Das Contributed Module wird bald eingestellt, da die Benutzer des JSON:API 8.x-2.x Contributed Module auf Drupal 8.5 oder 8.6 jetzt ohne Probleme auf Drupal 8.7 aktualisieren können, so Wim Leers.
Wie das JSON:API-Modul funktioniert
JSON:API ermöglicht eine großartige Authoring-Erfahrung, indem es die Drupal-Entitäten (Blog-Posts, Benutzer, Kommentare und mehr) über eine Web Service API verfügbar macht. Es generiert URLs für den Zugriff auf die Entitätstypen und -bündel mithilfe von HTTP-Methoden. Es erleichtert und ermöglicht Ihnen Folgendes:
- Nur die ausgewählten Entitätsfelder abrufen (z. B. Blogtitel)
- Beziehungen einbeziehen (z. B. Blogautoren) und zusätzliche Anfragen vermeiden
- Die Ressourcenkollektionen filtern und sortieren
- Die Paginierung der Ressourcenkollektionen durchführen
Hier ist eine von Dries geteilte JSON:API-Demo:
JSON vs. REST
Während viele mit dem REST-Modul von Core fortfahren, das eine extreme Konfigurierbarkeit ermöglicht, ist JSON:API ein Modul, das sich darauf konzentriert, Drupals größte Stärke – Entitäten/Datenmodellierung – offenzulegen. REST ist ein komplexes und fragiles Modul in der Handhabung und kann für viele eine Aufgabe sein.
JSON:API ist relativ leistungsstark für die meisten Anwendungsfälle und ermöglicht es Ihnen, Ihren Prozess zu vereinfachen. Internetgiganten wie Google, Twitter und Facebook arbeiten mit JSON, da es selbsterklärend, leicht verständlich und einfach ist.
Die beste Implementierung, die es gibt
Mit den besten Eigenschaften unterstützt das JSON:API-Modul für Drupal und seine Implementierung die folgenden Funktionen:
- 1.0-Spezifikation Out-of-the-Box.
- Jede Drupal-Entität (ein Ressourcenobjekt in der JSON:API-Terminologie) ist automatisch über JSON:API verfügbar.
- Bestehende Zugriffskontrollen für das Lesen und Schreiben werden berücksichtigt.
- Sowohl Übersetzungen als auch Revisionen von Entitäten werden zur Verfügung gestellt.
- Das Abfragen von Entitäten (Filtern von Ressourcenkollektionen in der JSON:API-Terminologie) ist ohne Konfiguration möglich (z. B. Einrichten einer „Drupal-Ansicht“)
Angesichts der jahrzehntelangen Entity API, Field API, Access APIs und der unglaublich robusten Grundlage von Drupal können die Daten über Web Service APIs verfügbar gemacht werden.
JSON:API-bezogene Module
#1 Das Key Auth Module, das eine einfache schlüsselbasierte Authentifizierung bietet, verwendet JSON:API, da es keine zusätzliche Konfiguration erfordert und ideal für Websites ist, die Endkunden-APIs bereitstellen.
#2 Mithilfe des normalen Drupal-Datenbankaktualisierungssystems ermöglicht die Lightning API die einfache Aufnahme von Inhalten durch andere Anwendungen, indem sie eine Standard-API mit Authentifizierung und Autorisierung bereitstellt. Sie verwendet die JSON:API- und OAuth2-Standards über die JSON:API- und Simple OAuth-Module.
#3 Sie können auch JSON:API Extras verwenden, um Ihre von dem JSON:API-Modul generierte API anzupassen. Sie können die Standard-Nullkonfigurationsimplementierung des JSON:API-Moduls überschreiben und eingeschränkte Konfigurationen gewähren. Das Extras-Modul aktiviert und deaktiviert Ressourcen, verbessert die Feldausgabe und überschreibt den Pfad und den Namen einer Ressource.
JSON:API Sicherheitsüberlegungen
Die JSON:API hat eine schnelle Lösungszeit für die Sicherheitslücken der stabilen Module auf Drupal.org. Benutzerdefinierte Module oder nicht stabile Contributed Modules erfolgen jedoch auf eigenes Risiko. Beachten Sie daher diese Sicherheitsüberprüfungen:
- Wenn die Schreibfunktionen von JSON:API aktiviert sind, stellen Sie sicher, dass Sie den Entity Access & Field Access prüfen auf einer Drupal-Site.
- Sie können bestimmte Ressourcentypen über eine PHP-API deaktivieren, die Sie in einem benutzerdefinierten Modul implementieren können, oder Sie verwenden das JSON:API Extras Contrib Module, das eine Benutzeroberfläche für deaktivierte Ressourcentypen und Felder bietet.
- Sie können den Nur-Lese-Modus von JSON:API aktivieren, um die Risiken durch hypothetische, noch unbekannte Fehler in bereits vorhandenen Validierungseinschränkungen und Schreiblogiken zu mindern.
- Um die Effektivität automatisierter Angriffe zu verringern, können Sie den Basispfad für JSON:API ändern.
Einschränkungen
JSON:API kann keine Aktionen ausführen, die „CRUD“ sein können. Es scheitert an der Registrierung eines neuen Kontos, der Anmeldung oder der Anforderung eines neuen Passworts. Diese gehören nicht zu den Fähigkeiten von JSON:API.
Fazit
Mit dem Aufkommen webbasierter APIs ist dieses Datenaustauschformat eine bessere Alternative als XML. Wir können jedoch nur abwarten, was die Zeit für JSON:API im Jahr 2020 bereithält.
Teilen Sie uns Ihre Gedanken unter [email protected] mit
Vernetzen Sie sich auch mit uns auf unseren Social-Media-Kanälen: Facebook, LinkedIn und Twitter für weitere Einblicke.
Abonnieren
Verwandte Blogs
Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…
Erklärbare KI-Tools: SHAPs Stärke in der KI

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…
KI-Chatbots: Präzision und Persönlichkeit in Perfektion

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…