Content as a Service e le avventure di un Headless WordPress

Sono passati più di 20 anni da quando nacque il primo Content Management System in America e d'allora ha preso sempre più piede tra gli utenti non tecnici l'utilizzo di vari sistemi, come il nostro amico WordPress, che dessero la possibilità di creare siti e/o blog in maniera rapida ed efficace.

Oggi non siamo qui a parlare di come inserire i temi floreali nel vostro blog che parla delle ultime mode di cucito, parleremo invece di come poter utilizzare questo strumento al pieno delle sue capacità, utilizzarlo come Content as a Service o meglio come Content Provider.

WordPress Oggi

WordPress utilizza un semplice stack con un Web server Apache ( classicamente MAMP o WAMP, dipende da che sistema state utilizzando ), appoggiandosi su un server Apache dove i dati sono raccolti in un database MySQL e processandoli utilizzando un motore tipicamente in PHP.
WordPress fornisce un'interfaccia all'amministratore che permette l'inserimento/rimozione/modifica dei vari contenuti del blog.

I dati vengono processati e stilizzati rispetto ad un tema scelto e/o personalizzato. Vi è data inoltre la possibilità di modificare e di creare temi a partire da zero, e ciò richiede conoscenze di PHP, CSS e un minimo di decenza grafica 😉

Negli ultimi anni infatti, sono drasticamente aumentate le richieste per WordPress Theme Developer, una figura professionale che si occupa esclusivamente di sviluppi di temi sviluppati a misura del cliente.

L'utilizzo classico illustrato di WordPress è molto limitato: gli sviluppatori sono vincolati ai contenuti che permette di inserire WP ( solo articoli ) e allo sviluppo di temi legati alle tecnologie PHP e CSS. Se si vuole continuare su questa strada vi consiglio caldamente di studiarvi uno stack utilizzando le tecnologie Timber + Twig + SCSS.

Headless CMS

Cosa diresti se c'è molto di più rispetto a quello che WP sembra offrire?

Classicamente WP e altri CMS propongono una singola soluzione tecnologica ( per WP PHP/HTML etc.. ). L'idea è quella di utilizzare i CMS esclusivamente come Content Provider e di fornire i contenuti tramite API.

Per questo motivo si parla di Headless CMS: WP si trasforma e muta in un servizio che fornisce i contenuti che sono mantenuti dalla classica dashboard, e si parla di Content as a Service ( o CaaS ). Per esporre i contenuti all'esterno WP fornisce un servizio di WordPress REST API. Grazie a questa nuova feature aggiunta da WP è possibile ottenere un livello di disaccoppiamento tra il database ( e i contenuti ) e il front end. Accedendo ai dati tramite API è possibile ora utilizzare qualsiasi tecnologia Front End a nostra a scelta!

In questo modo abbiamo tutti gli elementi dello stack che non sono vincolati l'uno all'altro. Abbiamo quindi la possibilità di ottenere applicazioni mobile utilizzando poche linee di codice.
L'architettura finale è piuttosto semplice: il front end ( a nostra scelta, mobile, web, chatbot, etc.. ) che accede ai contenuti attraverso REST API esposte da WP che è stato deployato su un tipico webserver con apache, MySQL etc. Spesso e volentieri abbiamo bisogno di aggiungere un livello aggiuntivo tra il Content Provider e il Front End che contiene logica di business, che chiamiamo Livello Ponte. Per la mia esperienza consiglio vivamente di utilizzare Node.js o Python ( dipende molto dagli obiettivi dell'applicazione ).

Una domanda sorge spontanea: WP offre la possibilità di inserire Articoli e commenti, come facciamo se abbiamo la necessità di inserire contenuti diversi e non previsti dal CMS?

Qui entra in gioco uno dei plugin più acclamati di WP: Advance Custom Fields ( a pagamento, però ad un prezzo molto abbordabile ). Tale permette la modifica/aggiunta di componenti custom al database di WordPress. Per comprendere al meglio: vogliamo registrare un modello che rappresenta un gioco da tavolo con le sue informazioni ( url dell'immagine, descrizione, recensione, voto da 1 a 10, etc... ). E' possibile registrare un articolo "custom" ( chiamato Gioco da Tavolo ) e tramite ACF è possibile aggiungere dei campi agli articoli in modo che rappresentino il modello che vogliamo inserire nella nostra applicazione.

Le potenzialità di questo nuovo stack sono enormi. E' possibile ora ottenere delle applicazioni in un tempo molto breve con una grandissima versatilità ottenuta dalla possibilità di separare le diverse logiche dell'architettura.

Lo scopo di questo articolo è stato raggiunto, abbiamo parlato di come WordPress può essere utilizzato per scopi diversi dai blog sui fiorellini. Prossimamente proverò anche a scrivere dei tutorial su un esempio di applicazione: l'applicazione raccoglierà i giochi da tavolo presenti in ufficio ( con tutte le informazioni sui giochi ), se sono stati presi in prestito da qualcuno dell'ufficio o se sono disponibili verrà data la possibilità di prenderli in prestito.

A Presto!

Informatico, curioso di natura, amante del basso e della buona carne. Gli è stato affibbiato il titolo di Front End Engineer per caso, e se lo tiene.

Content as a Service e le avventure di un Headless WordPress ultima modifica: 2019-05-15T10:43:58+01:00 da Samuele Medici


Advertisment ad adsense adlogger