Abrufen von Ressourcen (GET)
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.
- Aktiviere das basic_auth-Modul
- 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.