logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

JSON:API vs. REST-Modul des Kerns

21/05/2025, by Ivan

TL;DR

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

Etwas differenzierter:

  • Das REST-Modul im Core erlaubt alles (beliebiges Format, beliebige Logik, beliebige HTTP-Methoden) und ist extrem konfigurierbar. Mächtig, aber komplex und daher relativ fehleranfällig.
  • JSON:API konzentriert sich darauf, Drupals größte Stärke (Entities/Datenmodellierung) konsistent bereitzustellen. Einfach, aber für die meisten Anwendungsfälle ausreichend leistungsfähig.

Feature-Matrix

Vergleich der wichtigsten Features von JSON:API und REST.
Feature JSON:API REST Bemerkung
Entities als Ressourcen verfügbar ✔️ ✔️ REST: Muss für jeden Entitätstyp einzeln konfiguriert werden. JSON:API: Alles wird standardmäßig verfügbar gemacht. Beide respektieren Entity-Access.
Eigene Daten als Ressourcen verfügbar machen   ✔️ Erstelle eigene @RestResource-Plugins. JSON:API unterstützt nur Entities.
Abruf einzelner Ressourcen ✔️ ✔️  
Listen von Ressourcen abrufen ✔️ teilweise REST: Du musst eine View konfigurieren und eine "REST-Export"-Anzeige einrichten.
Paginierung von Ressourcenlisten ✔️ Zusätzliche Module wie Pager Serializer notwendig. REST: nicht unterstützt! REST-Export-Views geben alle Ressourcen zurück.
Filtern von Ressourcenlisten ✔️ teilweise REST: nur möglich, wenn du für jedes Feld und jeden Operator einen eigenen Exposed-Filter erstellst.
Sortierung von Ressourcen ✔️    
Includes/Embedding ✔️ Nur in HAL+JSON  
Keine unnötige Verschachtelung von Feldwerten ✔️   HAL-Normalisierung und Default-Normalisierung (und somit alle Formate) geben exakt die in PHP genutzten Datenstrukturen aus, was für API-Verbraucher schwierig sein kann. JSON:API vereinfacht die Ausgabe für einfache Felder.
Felder auslassen, die der Client nicht benötigt ✔️    
Konsistente URLs ✔️    
Der Client kann verfügbare Ressourcentypen ermitteln ✔️    
Drupal-unabhängige Antwortstruktur ✔️   REST: HAL-Normalisierung ist theoretisch drupal-unabhängig, aber in der Praxis nicht wirklich.
Client-Bibliotheken ✔️    
Erweiterbare Spezifikation In Arbeit    
Keine Konfiguration nötig (Zero configuration) ✔️   REST: Jedes @RestResource-Plugin muss erst konfiguriert werden (Formate, Authentifizierung, Methoden usw.). JSON:API: Alle Entitäten werden automatisch bereitgestellt, Zugriffsrechte werden respektiert, alle installierten Authentifizierungsmethoden sind automatisch erlaubt.

Weitere Informationen

Siehe die Begründung für die Aufnahme von JSON:API in den Drupal Core und die Architektur-Rationale des Moduls.

Artikel aus der Drupal Dokumentation.