Drupal disaccoppiato: cosa considerare durante l'utilizzo di JSON: API?
Pubblicato: 2018-09-12"Il vantaggio più convincente di Drupal API-first non è il modo in cui nega le funzionalità di presentazione di Drupal, è il modo in cui consente alle capacità del CMS di alimentare più applicazioni e dispositivi." — Jason Enter, Direttore dei servizi tecnici, Acquia.
La relazione tra contenuto e codice non è più salutare. Il livello di presentazione rivolto al consumatore non è così rimosso dal livello dell'editor di contenuti come una volta, principalmente a causa delle nuove esperienze interattive fornite ai consumatori tramite le app.
Framework e linguaggi di programmazione moderni consentono flessibilità nella formazione del tuo stack di gestione dei contenuti. Pertanto, disaccoppiare il contenuto dal codice è diventata una pratica comune negli ultimi anni e Drupal è stato uno dei primi ad adottarlo. Impariamo di più sull'architettura disaccoppiata di Drupal e Drupal 8.
Cos'è Drupal disaccoppiato?
Bene, Drupal disaccoppiato suona "cool", vero? Sembra che tutti ne parlino, quindi deve essere una soluzione migliore e più semplice, giusto? Beh forse. Offrendo una vasta gamma di vantaggi, questa strategia, nota anche come "drupal senza testa", viene utilizzata per sfruttare Drupal esclusivamente come sistema di gestione dei contenuti senza un livello di presentazione. cioè c'è solo il contenuto e l'interfaccia utente amministrativa, senza i temi di fronte al pubblico e gli altri modelli, esponendo così un'API per altre applicazioni.
Ma forse la domanda più importante che hai in mente sarebbe: quali sono i vantaggi dell'architettura Drupal disaccoppiata?
Un'architettura headless fa un ottimo lavoro nel ridurre o eliminare completamente la maggior parte dei problemi che fanno parte dei sistemi di gestione dei contenuti monolitici.
Aggiornamenti semplificati: un'architettura disaccoppiata garantisce che un aggiornamento CMS non influisca sul livello di presentazione, evitando così di dover eseguire nuovamente la configurazione dopo ogni aggiornamento CMS.
Migliore concentrazione: un enorme vantaggio per gli sviluppatori, con un'architettura disaccoppiata, devono solo preoccuparsi di impostare la loro parte dello stack. Gli sviluppatori di back-end non devono preoccuparsi di compilare CSS e i ragazzi di front-end non devono grattarsi la testa sulle installazioni del compositore.
Facile risoluzione dei problemi: un'architettura headless è strutturata in modo tale che la piattaforma sia costituita da parti più piccole e discrete anziché da una singola applicazione gigante. Ciò rende molto più facile individuare i bug e risolverli.
Prestazioni migliorate: con entrambi i team che lavorano contemporaneamente in modo disaccoppiato, lo sviluppo di nuove funzionalità può avvenire senza problemi senza imbattersi in muri. Questo a sua volta migliora le prestazioni complessive della piattaforma.
Facile risoluzione dei problemi: un'architettura headless è strutturata in modo tale che la piattaforma sia costituita da parti più piccole e discrete anziché da una singola applicazione gigante. Ciò rende molto più facile individuare i bug e risolverli.

Quanto è importante JSON:API per i siti Web Drupal disaccoppiati?
Architetture potenti, applicazioni web reattive e di facile utilizzo sono il risultato di framework JavaScript, che è diventato molto popolare dalla sua introduzione all'inizio del 2010. E con un numero crescente di persone che scelgono di utilizzare i dispositivi mobili per accedere ai contenuti digitali, la creazione di applicazioni native per un sito web ha molto senso.
Realizzando questo potenziale, Drupal 8 ha aggiunto il supporto per la creazione di API RESTful nel core. Tuttavia, questo ha i suoi svantaggi in quanto i servizi RESTful di Drupal core non forniscono soluzioni robuste pronte all'uso.
Un'implementazione tradizionale dell'API REST di solito si trova faccia a faccia con una certa serie di problemi:
- Un intero grafico di dati necessario per costruire la vista nel consumatore richiederà troppe richieste.
- Una risposta significativa gonfia restituendo tutti i campi e le relazioni di ogni entità.
- Trovare contenuto basato sugli attributi dei dati delle entità è un compito titanico.
- Controllo delle versioni dell'API in modo che i consumatori e le implementazioni back-end possano eseguire l'iterazione separatamente.
Per affrontare questi problemi, ci sono diverse specifiche là fuori, JSON: API è una delle più importanti.

Cos'è JSON?
JSON - Java Script Object Notation è uno dei formati di dati più comuni per lo scambio di dati sui servizi web. Sostituendo principalmente XML, la natura leggera e di facile lettura di JSON lo rende davvero fantastico.
Perché dovresti considerare l'implementazione delle specifiche JSON:API?
Un insieme di standard e convenzioni predefiniti che descrivono come le API dovrebbero essere servite dai server e consumate dai client per lo scambio di dati in formato JSON, le specifiche JSON:API offrono vantaggi chiave quando implementate:
Efficienza: le specifiche JSON:API sono progettate in modo tale da mantenere il numero di richieste e la dimensione dei dati al minimo indispensabile.
Produttività: accade così spesso che, in qualità di sviluppatore, sei piuttosto confuso su quali best practice seguire durante la creazione di un'API. D'altra parte, seguendo una serie di standard sei fuori dal dilemma.
Consistenza: le specifiche offrono una struttura e un comportamento coerenti mentre vengono utilizzate per creare applicazioni.
Supporto: le specifiche sono ampiamente accettate e le implementazioni richieste per le librerie client possono essere trovate per quasi tutti i framework e i linguaggi di programmazione.
Il modulo JSON:API
Il modulo JSON:API per Drupal 8 è un'implementazione della specifica JSON:API. Quando installi e abiliti il modulo JSON:API, un'API REST è immediatamente disponibile per ogni tipo all'interno della tua implementazione Drupal. Attraversando tipi di entità e bundle in modo da poter generare URL a cui può accedere e manipolare entità, il modulo raggiunge questa impresa.
Sebbene l'API JSON sia una specifica piuttosto complessa da gestire, il modulo API JSON fa un ottimo lavoro nel semplificare il processo di utilizzo, soprattutto per i primi sviluppatori Drupal disaccoppiati.
Tuttavia, seguendo l'approccio di "meno configurazioni" e prontezza per la produzione, il modulo JSON:API presenta una serie di svantaggi propri.
Supporto: il modulo JSON:API è interamente basato su entità, il che significa che è centrato sui tipi di entità e sui bundle di Drupal. Tuttavia, il modulo non supporta o gestisce i dati personalizzati.
Errore attività: poiché il modulo è basato su entità e non può gestire dati personalizzati, non riesce anche a eseguire altre attività come l'accesso, la creazione di sessioni o la disconnessione di un utente, ecc.
Struttura predefinita: il modulo JSON:API presenta una struttura di payload predefinita che non può essere modificata. Una volta abilitato il modulo in Drupal, la struttura del payload coerente non può essere modificata o personalizzata con il cambiamento dei requisiti del fornitore
Curva di apprendimento: poiché il modulo JSON:API espone tutti gli attributi di un'entità, potrebbe diventare di natura complessa. Con una curva di apprendimento piuttosto ripida, JSON: API potrebbe non essere la tazza di tè di tutti.

Come scaricare e installare il modulo JSON:API?
AGGIORNAMENTO: a partire da gennaio 2020, il modulo JSON:API è ora parte di Drupal Core (molto dopo la pubblicazione di questo blog). Pertanto, l'installazione non richiede il passaggio successivo.
Avendo una dipendenza dal modulo di serializzazione, deve essere abilitato prima di scaricare e installare JSON:API. Questo può essere fatto utilizzando uno dei seguenti metodi:
Usando Drush
$ drush en serialization -y $ drush dl jsonapi && drush en jsonapi -yUtilizzo della console Drupal
$ drupal module:install serialization $ drupal module:download jsonapi && drupal module:install jsonapi 