logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll
04/09/2025, by Ivan

Deze pagina toont voorbeelden van verschillende GET-verzoeken voor de JSON:API module.

In alle onderstaande voorbeelden zijn geen request headers vereist. Er is geen authenticatie nodig als anonieme gebruikers toegang hebben tot content-entiteiten. Voor configuratie-entiteiten zoals menu’s, zie de laatste sectie(s).

Let op dat in alle gevallen, wanneer een id nodig is, dit altijd de uuid van de entiteit is, niet de entity id.

Accept-header

Zorg ervoor dat je altijd de accept-header meestuurt: Accept: application/vnd.api+json.

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

Eenvoudig GET-voorbeeld

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

Response

HTTP 200 response. De response body bevat het JSON:API-object van een enkel artikel-node, inclusief attributen, relaties en links.

GET meerdere artikelen

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

Response

HTTP 200 response. De response body bevat het JSON:API-object van maximaal 50 artikelen, inclusief link naar de volgende.

GET eerste 10 artikelen

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

Response

JSON response van maximaal 10 artikelen, inclusief links naar de volgende.

GET tweede pagina met 10 artikelen

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

Response

HTTP 200 response. De response body bevat het JSON:API-object van maximaal 10 artikelen, inclusief links naar vorige, volgende, enz.

Voor meer informatie over paginering, zie: https://www.drupal.org/docs/8/modules/jsonapi/pagination

GET meerdere artikelen gesorteerd

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

Response

HTTP 200 response. De response body bevat het JSON:API-object van artikelen, oplopend gesorteerd op nid. Gebruik &sort=-nid om aflopend te sorteren.

Voor meer informatie over sorteren, zie: https://www.drupal.org/node/2803141

GET artikel gefilterd op titel

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

Response

HTTP 200 response. De response body bevat het JSON:API-object van artikelen, gefilterd op de ‘title’-veldwaarde die overeenkomt met '{{title_filter}}'.

Voor meer informatie over filters, zie: https://www.drupal.org/node/2943641

GET artikel media entity reference field_image url, uri door references mee te nemen

Nieuwere syntax

URL: 

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

Oudere 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

Response

HTTP 200 response. De response body bevat het JSON:API-object van de inbegrepen media-image-relaties, die overeenkomen met de enkele artikel-node met '{{article_uuid}}'.

GET artikel samen met volledige gerelateerde data set (auteur, taxonomy-term, enz.)

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

Response

HTTP 200 response. De response body bevat een user-object met alle informatie over de gekoppelde gebruiker. Dezelfde syntax werkt ook voor andere gerelateerde data zoals taxonomy-term.

GET artikel met user reference-veld, field_user_ref_example, en zijn profiel, ref_example_profile, (reference field binnen een reference field)

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

Response

HTTP 200 response. De response body bevat een user-object met alle informatie over de gekoppelde gebruiker en zijn profiel. Dezelfde syntax werkt ook voor andere gerelateerde data die een reference-veld bevat.

GET artikel samen met geselecteerde gerelateerde data-items (auteur, taxonomy-term, enz.)

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

Response

HTTP 200 response. De response body bevat een user-object met de opgegeven velden in het gerelateerde object (in dit geval, auteursnaam en auteur e-mail). Dezelfde syntax werkt ook voor andere gerelateerde data zoals taxonomy-term.

GET gebruikersaccounts

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

Response

HTTP 200 response. De response body bevat het JSON:API-object van gebruikersaccounts in het systeem, met uitzondering van het anonieme gebruikersaccount. Let op dat als je een lijst van alle gebruikersaccounts wilt ophalen, je de bovenstaande query moet gebruiken, omdat een eenvoudig GET-verzoek naar /jsonapi/user/user zal resulteren in een HTTP 403-fout.

Configuratie-entiteiten ophalen

Aangezien configuratie-entiteiten (menu, node type, tour) niet hetzelfde zijn als content-entiteiten (nodes, gebruikers), is dit iets lastiger. Momenteel zijn configuratie-entiteiten alleen-lezen.

Voor eenvoudig testen gebruiken we user-1 en de basic_auth-module.

  1. Schakel de basic_auth-module in
  2. Ga ervan uit dat de gebruikersnaam van user-1 admin is en het wachtwoord admin

Met het volgende commando krijg je een lijst van menu’s.

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

Artikel van Drupal Documentatie.