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

Récupération des ressources (GET)

21/06/2025, by Ivan

Cette page montre des exemples de différentes requêtes GET pour le module JSON:API.

Dans tous les exemples ci-dessous, aucun en-tête de requête n’est requis. Aucune authentification n’est nécessaire si les utilisateurs anonymes peuvent accéder aux entités de contenu. Pour les entités de configuration comme les menus, voir les dernières sections.

Notez que dans tous les cas, lorsqu’un identifiant est nécessaire, c’est toujours l’uuid de l’entité, pas l’id de l’entité.

En-tête Accept

Assurez-vous d’envoyer toujours l’en-tête accept : Accept: application/vnd.api+json.

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

Exemple basique de GET

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

Réponse

Réponse HTTP 200. Le corps de la réponse contient l’objet JSON:API d’un seul nœud article, incluant attributs, relations et liens.

GET de plusieurs articles

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

Réponse

Réponse HTTP 200. Le corps de la réponse contient l’objet JSON:API d’un maximum de 50 articles, incluant le lien vers la page suivante.

GET des 10 premiers articles

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

Réponse

Réponse JSON d’un maximum de 10 articles, incluant les liens vers la page suivante.

GET de la deuxième page de 10 articles

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

Réponse

Réponse HTTP 200. Le corps de la réponse contient l’objet JSON:API d’un maximum de 10 articles, incluant les liens vers la page précédente, suivante, etc.

Pour plus d’informations sur la pagination, voir : https://www.drupal.org/docs/8/modules/jsonapi/pagination

GET de plusieurs articles triés

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

Réponse

Réponse HTTP 200. Le corps de la réponse contient l’objet JSON:API des articles, triés par nid croissant. Utilisez &sort=-nid pour un tri décroissant.

Pour plus d’informations sur le tri, voir : https://www.drupal.org/node/2803141

GET d’un article filtré par titre

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

Réponse

Réponse HTTP 200. Le corps de la réponse contient l’objet JSON:API des articles, filtrés par la valeur du champ 'title' correspondant à '{{title_filter}}'

Pour plus d’informations sur les filtres, voir : https://www.drupal.org/node/2943641

GET article avec champ de référence média field_image url, uri en incluant les références

Syntaxe récente :

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

Syntaxe plus ancienne :

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

Réponse

Réponse HTTP 200. Le corps de la réponse contient l’objet JSON:API des relations médias incluses, correspondant au nœud article unique identifié par '{{article_uuid}}'

GET article avec ensemble complet de données associées (auteur, terme de taxonomie, etc.)

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

Réponse

Réponse HTTP 200. Le corps de la réponse inclut un objet utilisateur contenant toutes les informations sur l’utilisateur associé. La même syntaxe fonctionne pour d’autres données liées comme les termes de taxonomie.

GET article avec champ de référence utilisateur, field_user_ref_example, et son profil, ref_example_profile (champ de référence dans un champ de référence)

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

Réponse

Réponse HTTP 200. Le corps de la réponse inclut un objet utilisateur contenant toutes les informations sur l’utilisateur associé ainsi que son profil. La même syntaxe fonctionne pour d’autres données liées contenant aussi un champ de référence.

GET article avec éléments de données associées sélectionnés (auteur, terme de taxonomie, etc.)

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

Réponse

Réponse HTTP 200. Le corps de la réponse inclut un objet utilisateur contenant les champs spécifiés dans l’objet lié (dans ce cas, nom et email de l’auteur). La même syntaxe fonctionne pour d’autres données liées comme les termes de taxonomie.

GET comptes utilisateurs

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

Réponse

Réponse HTTP 200. Le corps de la réponse contient l’objet JSON:API des comptes utilisateurs du système, à l’exception du compte utilisateur anonyme. Notez que pour obtenir la liste de tous les comptes utilisateurs, vous devez utiliser la requête ci-dessus, car une simple requête GET vers /jsonapi/user/user renverra une erreur HTTP 403.

Récupération des entités de configuration

Comme les entités de configuration (menu, type de nœud, visite guidée) ne sont pas équivalentes aux entités de contenu (nœuds, utilisateurs), cela est un peu plus complexe. Actuellement, les entités de configuration sont en lecture seule.

Pour faciliter les tests, nous utilisons l’utilisateur 1 et le module basic_auth.

  1. Activez le module basic_auth
  2. Supposons que le nom d’utilisateur de l’utilisateur 1 est admin et que le mot de passe est admin

La commande suivante listera les menus :

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

Article extrait de la documentation Drupal.