Come realizzare un API-first, decoupled CMS tramite lo sviluppo di siti Drupal 8
Uno dei trend più seguiti negli ultimi anni dalla community degli sviluppatori web, e quindi anche da chi si occupa di sviluppo siti Drupal, è sicuramente quello del “Decoupled CMS”, ossia la possibilità di separare il frontend dal backend per rendere disponibili i contenuti su più canali e nei formati più opportuni. L’evoluzione dei siti web tradizionali verso web applications interattive e la necessità di accedere ai dati nelle modalità più disparate hanno reso necessario un approccio “disaccoppiato” dove al frontend web tradizionale vengono affiancati più frontend. In alcuni casi, addirittura, il frontend web nativo cessa di essere un requisito, diventando secondario rispetto a un framework del tipo “client side” che permette agli sviluppatori frontend un controllo maggiore sulla presentazione e sulle interazioni con i dati.
Uno dei CMS che per primo ha saputo cogliere (se non addirittura anticipare) questa necessità, dando soluzioni tecnologiche alle nuove esigenze del mercato è sicuramente Drupal, il CMS che Archibuzz ha scelto come piattaforma principale su cui sviluppare siti e web application per i progetti più esigenti.
Il nostro team di sviluppo siti Drupal a Torino sa che vi sono molte strade per giungere a una soluzione, e nel corso degli ultimi anni sono proliferate nella community una moltitudine di approcci diversi per realizzare un “Decoupled Drupal”. Se da un lato questo fenomeno ha consentito di testare metodologie differenti per risolvere lo stesso problema, evidenziando punti di forza e limitazioni di ogni approccio, dall’altro ha creato ambiguità nella scelta per chi lavora in ambito sviluppo siti Drupal e che affronta il tema. Per essere testata, ogni soluzione ha richiesto una ricerca approfondita su più fonti documentali; e operazioni di una certa complessità nell’installazione e configurazione di moduli, per arrivare infine alla conclusione che vi sarebbe potuta essere una soluzione più indicata, performante o affine al modo in cui ogni sviluppatore è solito utilizzare Drupal - e così, è toccato, ogni volta, ripartire da capo.
Sono però nate recentemente due nuove iniziative che hanno fatto parlare di sé: il progetto Waterwheel, a cura del nostro partner Acquia, e Contenta CMS. Si tratta di due distribuzioni Drupal 8 nate appositamente per chi vuole avere un “Decoupled Drupal” out of the box, cioè pronto all’uso subito dopo l’installazione. Vediamole più nel dettaglio.
Waterwheel
Immagine: dev.acquia.com
Waterwheel nasce dall’esigenza di mettere a disposizione di tutti gli sviluppatori dei kit di sviluppo (SDK) per facilitare lo sviluppo di siti Drupal secondo la logica cosiddetta “API first”, ovvero partendo dallo sviluppo dell’API per la creazione di una app per mobile, un sito web, una web application, ecc., e stabilendo solo successivamente i canali sui quali attivare le sue funzionalità. Waterwheel consiste in una raccolta di SDK al servizio non soltanto dei team di sviluppo Drupal e PHP, ma anche per tutti coloro che non “parlano” in Drupal ma vogliono sfruttare la sua riconosciuta efficienza come sistema di gestione dei contenuti. Per questa ragione, la missione è quella di aiutare gli sviluppatori a creare applicazioni Drupal in query di tipo JavaScript e Swift senza dover imparare tutte le sfaccettature da veri e propri “drupalisti”. Il team di Waterwheel ha reso anche disponibili add-on e una reference app per il framework Ember e una reference app anche per l’integrazione Drupal-React per chi utilizza il framework React.
Contenta CMS
Immagine: medium.com/@mateu.aguilo.bosch
Contenta è una distribuzione Drupal che si avvale delle funzionalità di JSON per la creazione delle API. Si tratta di un progetto ambizioso che sta ricevendo molte lodi per il suo obiettivo di mettere a disposizione tutti gli strumenti per creare da zero il proprio CMS in Drupal anche se si ha una conoscenza molto limitata del linguaggio per lo sviluppo di siti Drupal. Contenta, inoltre, consente l’integrazione con numerosi e popolari framework quali React, Angular, Elm, Ionic e Alexa skill. Il progetto ambizioso del team di Contenta è quello di includere all’interno del proprio pacchetto tutti i moduli e le funzionalità Drupal da conoscere per costruire il proprio decoupled back-end. La sua mission include anche la possibilità di essere utilizzabile “dal primo minuto” (anche grazie alla demo distribuita all’interno del suo pacchetto) e la creazione di un “Decoupled Knowledge Hub”, un centro di documentazione dedicata specificamente ai moduli di cui Contenta CMS è composta.
Il tuo progetto richiede un approccio API-first? Hai la necessità di sviluppare un sistema dotato di un frontend client-side? Vuoi rendere i contenuti presenti sulla tua installazione di Drupal accessibili agli utenti tramite App in modo interattivo? Raccontaci il tuo progetto: il nostro team di sviluppo siti Drupal ti fornirà la soluzione “Decoupled Drupal” più adatta a soddisfare le esigenze del tuo progetto.