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
22/05/2025, by Ivan

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.

Accept-Header

Stelle sicher, dass du immer den Accept-Header sendest: Accept: application/vnd.api+json.

curl \
  --header 'Accept: application/vnd.api+json' \
  .... 

Einfaches GET-Beispiel

URL: http://example.com/jsonapi/node/article/{{article_uuid}}

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält das JSON:API-Objekt eines einzelnen Artikel-Nodes, inklusive Attribute, Beziehungen und Links.

Mehrere Artikel abrufen

URL: http://example.com/jsonapi/node/article

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält das JSON:API-Objekt von maximal 50 Artikeln, einschließlich Link zur nächsten Seite.

Die ersten 10 Artikel abrufen

URL: http://example.com/jsonapi/node/article?page[limit]=10

Antwort

JSON-Antwort von maximal 10 Artikeln, einschließlich Links zur nächsten Seite.

Zweite Seite mit 10 Artikeln abrufen

URL: http://example.com/jsonapi/node/article?page[limit]=10&page[offset]=10

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält das JSON:API-Objekt von maximal 10 Artikeln, einschließlich Links zu vorherigen, nächsten Seiten usw.

Weitere Informationen zur Paginierung findest du unter: https://www.drupal.org/docs/8/modules/jsonapi/pagination

Mehrere Artikel sortiert abrufen

URL: http://example.com/jsonapi/node/article?sort=nid

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält das JSON:API-Objekt der Artikel, sortiert nach nid aufsteigend. Verwende &sort=-nid für absteigend.

Weitere Informationen zum Sortieren findest du unter: https://www.drupal.org/node/2803141

Artikel nach Titel gefiltert abrufen

URL: http://example.com/jsonapi/node/article?filter[article-title][path]=title&filter[article-title][value]={{title_filter}}&filter[article-title][operator]==

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält das JSON:API-Objekt von Artikeln, die im Feld 'title' mit dem Wert '{{title_filter}}' übereinstimmen.

Weitere Informationen zu Filtern findest du unter: https://www.drupal.org/node/2943641

Artikel mit Medien-Entity-Referenzfeld (field_image) URL und URI inklusive Referenzen abrufen

Neuere Syntax

URL:

http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image&fields[file--file]=uri,url

Ältere Syntax

URL: http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image,field_image.image,field_image.image.file--file&fields[field_image]=image&fields[file--file]=uri,url

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält das JSON:API-Objekt der eingebetteten Medien-Bild-Beziehungen, passend zum Artikel-Node '{{article_uuid}}'

Artikel zusammen mit dem vollständigen Datensatz (Autor, Taxonomie-Begriff, usw.) abrufen

URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&include=uid

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält ein Benutzerobjekt mit allen Informationen zum zugehörigen Benutzer. Die gleiche Syntax funktioniert auch für andere verknüpfte Daten wie Taxonomie-Begriffe.

Artikel mit Benutzerreferenzfeld (field_user_ref_example) und dessen Profil (ref_example_profile) abrufen (Referenzfeld innerhalb eines Referenzfelds)

URL: http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_user_ref_example,field_user_ref_example.ref_example_profile

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält ein Benutzerobjekt mit allen Informationen zum zugehörigen Benutzer und dessen Profil. Die gleiche Syntax funktioniert auch für andere verknüpfte Daten, die ebenfalls ein Referenzfeld enthalten.

Artikel zusammen mit ausgewählten verknüpften Daten abrufen (Autor, Taxonomie-Begriff, usw.)

URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&fields[user--user]=name,mail&include=uid

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält ein Benutzerobjekt, das nur die angegebenen Felder enthält (hier: Autorenname und E-Mail). Die gleiche Syntax funktioniert auch für andere verknüpfte Daten wie Taxonomie-Begriffe.

Benutzerkonten abrufen

URL: http://example.com/jsonapi/user/user?filter[anon][condition][path]=uid&filter[anon][condition][value]=0&filter[anon][condition][operator]=<>

Antwort

HTTP 200 Antwort. Der Antwort-Body enthält das JSON:API-Objekt der Benutzerkonten im System, mit Ausnahme des anonymen Benutzerkontos. Beachte, dass du für eine Liste aller Benutzerkonten unbedingt die obige Abfrage verwenden musst, da eine einfache GET-Anfrage an /jsonapi/user/user zu einem HTTP 403 Fehler führt.

Konfigurationsentitäten abrufen

Da Konfigurationsentitäten (Menü, Node-Typ, Tour) nicht den Inhaltsentitäten (Nodes, Benutzer) entsprechen, ist dies etwas komplizierter. Derzeit sind Konfigurationsentitäten nur lesbar.

Für einfaches Testen verwenden wir user-1 und das basic_auth-Modul.

  1. Aktiviere das basic_auth-Modul
  2. Gehe davon aus, dass user-1 den Namen admin und das Passwort admin hat

Mit folgendem Befehl werden Menüs aufgelistet:

curl \
  --header 'Accept: application/vnd.api+json' \
  http://admin:admin@drupal.d8/jsonapi/menu/menu

Artikel von Drupal Documentation.