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. modulo REST del core

04/09/2025, by Ivan

TL;DR

Scegli REST se devi esporre dati che non sono entità. In tutti gli altri casi, scegli JSON:API.

In modo leggermente più sfumato:

  • Il modulo REST del core consente qualsiasi cosa (qualsiasi formato, qualsiasi logica, qualsiasi metodo HTTP) ed è estremamente configurabile. Potente ma complesso e quindi relativamente fragile.
  • JSON:API si concentra sull’esporre il punto di forza maggiore di Drupal (entità/modellazione dei dati) in modo coerente. Semplice ma sufficientemente potente per la maggior parte dei casi d’uso.

Matrice delle funzionalità

Confronto ad alto livello basato su funzionalità tra JSON:API e REST.
Funzionalità JSON:API REST Osservazioni
Entità esposte come risorse ✔️ ✔️ REST: va configurato per ogni entity type. JSON:API: tutto è esposto per impostazione predefinita. Entrambi: rispettano l’entity access.
Dati personalizzati esposti come risorse   ✔️ Scrivi plugin @RestResource personalizzati. JSON:API supporta solo le entità.
Recupero di singole risorse ✔️ ✔️  
Recupero di liste di risorse ✔️ più o meno

REST: devi configurare una View e impostare una modalità “REST export”.

Paginazione delle liste di risorse ✔️ Sono necessari moduli aggiuntivi come Pager Serializer. REST: non supportato! Le viste REST export restituiscono tutte le risorse. 
Filtraggio delle liste di risorse ✔️ più o meno

REST: solo se crei un filtro esposto per ogni campo e per ogni possibile operatore

Ordinamento delle risorse ✔️    
Include/embedding ✔️ Solo in HAL+JSON  
Nessun incapsulamento inutile dei valori dei campi ✔️   Sia la normalizzazione HAL sia la normalizzazione predefinita (e quindi tutti i formati) soffrono dell’esporre esattamente le strutture dati PHP in memoria usate da Drupal, causando una DX dolorosa per i consumer. JSON:API semplifica la normalizzazione dei campi a cardinalità singola e a singola proprietà.
Possibilità di omettere i campi non necessari al consumer ✔️    
URL coerenti ✔️    
Il consumer può scoprire i tipi di risorsa disponibili ✔️    
Struttura di risposta indipendente da Drupal ✔️   REST: in teoria la normalizzazione HAL è priva di “Drupalisms”, ma in pratica non è così.
Librerie client ✔️    
Spec estensibile WIP    
Zero configurazione ✔️   REST: ogni definizione di plugin @RestResource è disponibile per essere esposta, ma deve essere configurata per esserlo. Per ciascuna, devi selezionare i formati consentiti, i provider di autenticazione consentiti e facoltativamente anche i metodi HTTP consentiti.
JSON:API: tutte le entità sono esposte automaticamente, l’accesso a entità/campi è rispettato, tutti i provider di autenticazione installati sono consentiti automaticamente.

Ulteriori informazioni

Vedi le motivazioni per l’aggiunta del modulo JSON:API nel core di Drupal e le motivazioni architetturali del modulo.

Articolo tratto dalla Documentazione di Drupal.