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

JSON:API vs. le module REST du cœur

21/06/2025, by Ivan

En Bref

Choisissez REST si vous avez des données non entité à exposer. Dans tous les autres cas, choisissez JSON:API.

Un peu plus nuancé :

  • Le module REST du cœur permet tout (tout format, toute logique, toute méthode HTTP) et une configurabilité extrême. Puissant mais complexe et donc relativement fragile.
  • JSON:API se concentre sur l’exposition de la plus grande force de Drupal (les entités/modèles de données) de façon cohérente. Simple mais suffisamment puissant pour la plupart des cas d’utilisation.

Tableau comparatif des fonctionnalités

Comparaison fonctionnelle de haut niveau entre JSON:API et REST.
Fonctionnalité JSON:API REST Remarque
Entités exposées comme ressources ✔️ ✔️ REST : nécessite configuration par type d’entité. JSON:API : tout est exposé par défaut. Les deux respectent les accès aux entités.
Données personnalisées exposées comme ressources ✔️ Écrire des plugins personnalisés @RestResource. JSON:API supporte uniquement les entités.
Récupération de ressources individuelles ✔️ ✔️
Récupération de listes de ressources ✔️ En partie REST : nécessite de configurer une vue et un affichage "REST export".
Pagination des listes de ressources ✔️ Modules additionnels comme le Pager Serializer sont nécessaires. REST : non supporté ! Les vues REST export retournent toutes les ressources.
Filtrage des listes de ressources ✔️ En partie REST : uniquement si vous créez un filtre exposé pour chaque champ et chaque opérateur possible.
Tri des ressources ✔️
Inclusions/embeddings ✔️ Seulement en HAL+JSON
Pas d’emballage inutile des valeurs de champs ✔️ La normalisation HAL et la normalisation par défaut (et donc tous les formats) exposent exactement les structures PHP en mémoire utilisées par Drupal, ce qui rend l’expérience développeur douloureuse. JSON:API simplifie la normalisation des champs à cardinalité simple et à propriété unique.
Possibilité d’omettre les champs non nécessaires au consommateur ✔️
URLs cohérentes ✔️
Le consommateur peut découvrir les types de ressources disponibles ✔️
Structure de réponse indépendante de Drupal ✔️ REST : la normalisation HAL est en théorie sans spécificités Drupal, mais en pratique ce n’est pas le cas.
Bibliothèques clientes ✔️
Spécification extensible En cours
Zéro configuration ✔️ REST : chaque plugin @RestResource peut être exposé mais doit être configuré pour l’être. Pour chacun, il faut choisir les formats autorisés, les fournisseurs d’authentification permis, et éventuellement les méthodes HTTP autorisées.
JSON:API : toutes les entités sont exposées automatiquement, l’accès entité/champ est respecté, tous les fournisseurs d’authentification installés sont autorisés automatiquement.

Plus d’informations

Voir le motif de l’ajout du module JSON:API au cœur de Drupal, ainsi que le motif architectural du module.

Article extrait de la documentation Drupal.