Drupal 8 Headless

Negli ultimi anni sta prendendo sempre più piede l’utilizzo di Drupal Headless, ovvero un’installazione Drupal senza la parte di frontend, che va a esporre i contenuti attraverso delle API in formati quali JSON o XML , anche se prevalentemente si utilizza il primo. Questa pratica piace molto perché rende possibile l’utilizzo di un Content Management System come Drupal per permettere l’inserimento dei contenuti agli editor, ma che verranno poi visualizzati client-side da dei framework di frontend come possono essere ExtJs, AngularJs, ReactJs, etc. In questo modo si va a separare completamente il backend dal frontend, rendendo una delle due parti facilmente intercambiabile con altre tecnologie. Drupal 8 è un ottimo sistema per gestire le API, perché unisce la gestione dei contenuti a RESTful Web Services, modulo che permette di creare servizi RESTful e che ora è built-in all’interno del core di Drupal, a differenza di Drupal 7 dove era necessario installarlo separatamente o usare moduli contrib alternativi come per esempio Services. Partendo da un’installazione di Drupal 8 il modulo che deve essere abilitato è RESTful Web Services. Si può partire sia dalla versione standard, che quella minimal di Drupal; nel secondo caso è consigliato impostare Seven come tema, in modo da avere già un layout per il vostro backend, e di abilitare moduli essenziali come Toolbar, Image, Field UI, Views UI, etc. Inoltre per l’esempio che andremo a realizzare serve installare il modulo Image URL Formatter. A questo punto creiamo un Content Type News, con i campi Abstract e Preview per l’anteprima e Banner e Body per il dettaglio. Ora per visualizzare la lista delle news va creata una vista, selezionando la voce “Provide a REST export”. All’interno della vista la voce “Show” deve essere valorizzata a “Fields”, a questo punto possiamo aggiungere i campi del Content Type News nella sezione Fields Per il campo title va tolta la spunta “Link to the Content”.
Mentre per la preview e il banner bisogna usare il formatter “Image URL” selezionando “Full URL” come URL type
La configurazione della vista dovrà essere come nell’immagine seguente:
E andando al percorso /news-list l’output sarà il JSON con le news [ { title: ”News 2”, field_abstract: ”
Read about Headless Drupal
”, field_preview: ”http://drupal8-test.local/sites/default/files/2016-06/esempio-preview_0.png”, field_banner: ”http://drupal8-test.local/sites/default/files/2016-06/esempio-banner_0.png”, body:”
Text news 2
” }, { title: ”News 1”, field_abstract: ”
This news talks about...
”, field_preview: ”http://drupal8-test.local/sites/default/files/2016-06/esempio-preview.png”, field_banner: ”http://drupal8-test.local/sites/default/files/2016-06/esempio-banner.png”, body: ”
Testo news 1
” } ] E… that’s it, senza scrivere codice e utilizzando semplicemente un Content Type e una vista, i due elementi più comuni di Drupal, abbiamo creato il primo endpoint delle nostre API.
Realizziamo qualcosa di straordinario insieme!
Siamo consulenti prima che partner, scrivici per sapere quale soluzione si adatta meglio alle tue esigenze. Potremo trovare insieme la soluzione migliore per dare vita ai tuoi progetti.