Quali poteri potrai ottenere dalle REST API di WordPress?

In questo articolo ho deciso di introdurti un argomento molto importante che sta cambiando come WordPress verrà utilizzato d'ora in avanti. Quasi sicuramente non ti sarai neanche accorto di quello che sta succedendo perché le tecnologie che andremo a parlare all'interno di questo articolo lavorano tutte dietro le quinte ma se mi sto sbagliando sono sicuro che non storgi la bocca ad un piccolo ripasso ;)

In questo articolo non scoprirai una nuova soluzione per creare più velocemente i tuoi temi WordPress e neanche troverai l’introduzione al plugin boilerplate sviluppato dal nostro Daniele. Quello che troverai è principalmente un’introduzione teorica alle funzionalità ricca di spunti pratici dai quali potrai iniziare a sperimentare questi nuovi poteri.

Se non hai voglia di continuare a leggere non ti posso biasimare, in fin dei conti la teoria è pallosa… Ma la teoria è anche quella parte della nostra formazione che ci permette di evolvere il nostro pensiero e trovare nuove soluzioni (spesso migliori) che prima non riuscivamo neanche a vedere.

Non mi fraintendere, non sto dicendo che la pratica non serve, la pratica è essenziale per diventare un bravo sviluppatore WordPress e non, ma non ci sarebbe pratica se non ci fosse prima la teoria.

Se stai ancora leggendo sono sicuro che anche per te la teoria è un aspetto importante della tua formazione e sei qua per arricchire ulteriormente le tue conoscenze; o forse sei qua soltanto per scoprire quali sono i poteri che potrai sbloccare apprendendo questi concetti?

Già, i poteri…

Soltanto avvicinandoti a WordPress hai ampliato la tua cassetta dei poteri aggiungendo ai tuoi progetti un sistema di login incredibilmente sicuro che si interfaccia con un gran numero di social (grazie alle loro API), una gestione CRUD completa e testata da diversi anni, un sistema di template che ti permette di sviluppare i tuoi frontend senza la necessità di modificare le funzioni con le quali ottieni le informazioni dal database, la possibilità di estendere le funzionalità base della piattaforma grazie all’ausilio dei plugin

Sarei potuto andare avanti molto altro per elencare i singoli poteri che tutti assieme si sono sbloccati nell’instante in cui hai installato per la tua prima volta WordPress, ma ho preferito non farlo. Onestamente sono sicuro che ci sono altri poteri/vantaggi che hai ottenuto utilizzando e sviluppando con questa piattaforma e sarei curioso di leggerli nei commenti, ma quali sono i poteri che sbloccherai utilizzando le REST API??

Personalmente questa volta ho deciso di fare il cattivo e lasciare tutto il dolce in fondo. Adesso è giunto il momento di scoprire le tecnologie che stanno alla base di questa rivoluzione.

Conoscenze di base da padroneggiare

Nella frase precedente ho parlato di rivoluzione e anche nell’apertura di questo articolo ho annunciato qualcosa di stravolgente: cambiare il modo in cui viene usato WordPress.

Tecnologie da padroneggiare per le API WordPress

Mi ricordo anche che ti ho detto che questi nuovi usi della nostra piattaforma preferita sono già in atto e vengono sfruttati incredibilmente bene da aziende come AppPresser che permettono di creare delle vere e proprie applicazioni mobile partendo da una semplice installazione WordPress e WooCommerce. Se non lo conosci ancora, grazie a questa soluzione puoi trasformare il tuo eCommerce in un vera applicazione per il tuo smartphone!

Tutto questo ci porta ad analizzare un nuovo termine che negli ultimi anni, ad essere onesto dal lancio dell’iPhone, ha popolato il web e ha portato con maggior forza il mondo virtuale dello sviluppo all’interno del mondo reale: applicazione…

Applicazioni: Mobile e Web

Non posso fare l’ignorante (come direbbero Aldo Giovanni e Giacomo nel senso di ignora 🙂 ) e fare finta che le applicazioni non si siano mai esistite. Se oggi stai leggendo queste parole è grazie alla mole di applicazioni (o programmi) che tutt’oggi siamo in grado di installare all’interno dei nostri computer.

Dal mio punto di vista, WordPress è un’applicazione che si installa sul server (guarda caso, un computer).

Ma torniamo per un attimo al nostro percorso, prima c’erano le applicazioni per i computer, poi ci sono state quelle per i cellulari e adesso prende vita il nome di applicazioni web (o web app); perché tutte queste distinzioni?

Senza scendere nei dettagli, ciascun sistema operativo ha sempre prediletto un proprio linguaggio di programmazione che permettesse di creare delle applicazioni che vengono eseguite soltanto al loro interno. Questa è una visione molto anni ’90 di quello che è l’informatica oggi e non dobbiamo dimenticarci che con l’avvento del linguaggio di programmazione Java c’è stato un primo tentativo di abbattere queste barriere.

java-lento

Peccato che il suo componente principale che permetteva di eseguire il suo codice su qualsiasi computer, il suo motore, è stato sempre il suo tallone d’Achille: è sempre stato troppo lento. Per questo motivo le applicazioni multipiattaforma (cross-platform) sono sempre state difficili da sviluppare e raramente hanno visto dei seri utilizzi.

La stessa cosa è successa nel mondo mobile.

Da una parte troviamo iOS che spinge il suo Objective C (anche se adesso il suo linguaggio di punta è Swift) mentre dall’altra parte del ring troviamo Android con la sua passione per Java. Come possiamo vedere, anche nel mondo mobile era presente un concetto molto vecchio che non fa altro che complicare la vita di noi sviluppatori: dover apprendere nuovi linguaggi di programmazione.

Ecco perché grazie anche all’aumento della potenza di calcolo dei computer (sia client che server), ai motori JavaScript sempre più performanti e a connessioni sempre più veloci è diventato comune il termine applicazione web. Grazie a questa soluzione siamo in grado di sviluppare un singolo codice, con linguaggi di sviluppo standard, e realizzare un’applicazione compatibile con tutti i device presenti.

Discutere le basse prestazioni di cui soffrivano queste soluzioni qualche anno fa è come dire che WordPress è buono soltanto per i blog e quindi non ho intenzione di percorrere questa strada. Quello che ho invece intenzione di fare è presentarti le tecnologie che hanno permesso il diffondersi delle applicazioni web e farti capire al meglio come si integrano all’interno di WordPress.

REST – REpresentational State Transfer

Prendiamo subito in esame l’acronimo che definisce la nuova tecnologia che verrà integrata in WordPress: REpresentational State Transfer.

Se leggi wpAndMore da diverso tempo sono sicuro che conosci la strutture client/server che mantiene in piedi tutto Internet. Praticamente da una parte c’è il tuo computer (il client) che chiede ad un altro (il server) una determinata pagina web. Il secondo risponde inviando la pagina al primo che è in grado di visualizzarla all’interno del browser installato.

Qua siamo proprio al 101 del funzionamento del Web e non voglio perdermi in altri discorsi. Quello che permettono di fare le REST è proprio creare dei punti (gli endpoint) ai quali la tua applicazione potrà rispondere offrendo i dati richiesti; sarà poi il client a ricomporli come meglio crede grazie al codice HTML5, CSS3 e JavaScript dei quali è composta la sua applicazione.

Non è mia intenzione spiegarti nel dettaglio il funzionamento di questa soluzione, in fin dei conti il video che ti ho appena allegato dura ben 20 minuti e non fa altro che spiegarla!

Il mio unico intento era farti capire che grazie a questa tecnologia il tuo WordPress sarà in grado di non rispondere più soltanto con delle pagine HTML generate da del codice PHP, cosa che richiede molto lavoro macchina; ma potrà semplicemente rispondere offrendo i dati richiesti interrogando soltanto il suo database!

Questo ci porta ad un nuovo interrogativo, se adesso WordPress non è più dipendente dal codice PHP e tantomeno dal codice HTML, con quale formato saranno disposte le informazioni che saremo in grado di raggiungere e di inserire all’interno del nostro database?

Per fortuna la risposta a questa domanda la puoi trovare nella seguente sezione.

JSON – JavaScript Object Notation

Ecco che da un acronimo saltiamo ad un altro che può sembrare altrettanto oscuro sopratutto se in questi ultimi anni non ti sei trovato a lavorare con queste tecnologie. Molto spesso ho pensato a questo acronimo e alla sua struttura come a qualcosa di arcano ma soltanto perché non ero pratico di JavaScript e tantomeno di come funzionasse la sua dichiarazione degli oggetti.

Grazie alla JavaScript Object Notation ad oggi siamo in grado di comunicare con qualsiasi sistema collegato in rete. Se sviluppi nel web già da qualche anno dovresti ricordarti che un po’ di tempo fa ci fu il linguaggio XML e la sua trasposizione in xHTML che la facevano da padroni. Il primo viene ancora utilizzato per la creazione dei nostri feed RSS mentre il secondo, per nostra fortuna, è ormai scomparso per fare spazio alla nuova evoluzione del classico HTML, il metalinguaggio HTML5 che porta con se un sacco di interessanti caratteristiche.

Ma perché è stato scelto di utilizzare questo tipo di scrittura piuttosto che il “classico” XML?

Per prima cosa bisogna dire che quest’ultimo, con tutti i caratteri di marcatura che porta con sé, crea dei file veramente pesanti e difficili da comprendere sia per l’essere umano che per qualsiasi macchina. Infatti il formato che possiamo creare con JSON è incredibilmente semplice da comprendere e crea dei file leggerissimi; oltre a questo se mettiamo in conto che è compatibile con moltissimi linguaggi di programmazione è facile capire perché è stato selezionato. In fin dei conti sono pochi gli sviluppatori (seri) che decidono di reinventare la ruota 🙂

Esempio codice JSON WordPress

Questo blocco di codice che ti ho appena inserito si riferisce all’oggetto JSON che ci viene restiuito consultando l’indirizzo https://europe.wordcamp.org/2015/wp-json/posts/8684 che ci permette di consultare il contenuto dell’articolo con ID 8684. A parte le dichiarazioni dove trovi { } che io stesso ho nascosto per mantenere questo blocco di codice più breve, puoi notare tu stesso che si trovano un sacco di informazioni interessanti andando semplicemente a richiedere un contenuto da una URL.

Questa è la potenza di poter utilizzare i JSON, una semplice dichiarazione di un oggetto (che all’occorrenza contiene altri oggetti e array al suo interno) che può essere scambiata con qualsiasi linguaggio di programmazione e di conseguenza con qualsiasi ambiente di sviluppo.

Come attivare queste funzionalità

Purtroppo anche con il recente aggiornamento alla versione 4.3 di WordPress, le WP API non sono ancora integrate all’interno del nostro CMS; non vengono ancora ritenute abbastanza “stabili”, ma questo assolutamente non ci ferma dal poterlo installare all’interno dei nostri sistemi di test e iniziare a fare i nostri primi esperimenti!

wp-api

Per poter iniziare a fare i propri esperimenti non devi far altro che installare il plugin ed il gioco è fatto! Mi raccomando presta attenzione che la versione del plugin che ti ho collegato è la 2 e questo cambia un po’ la sintassi degli endpoint (le URL che possiamo utilizzare per eseguire le operazioni di CRUD), ma la documentazione presente sul sito è abbastanza completa e ti permetterà di avviare velocemente i tuoi primi passi all’interno di questa tecnologia.

Se poi così non fosse preparati perché torneremo molto spesso a parlare di questa rivoluzione all’interno di WordPress e non mancheranno dei corsi dedicati su skillsAndMore che ti permetteranno di avere un punto completo sulle possibilità, o per rimanere in tema i poteri, che potrai raggiungere.

Strumenti utili per familiarizzare

Non voglio stare a parlare troppo di questi concetti perché in fin dei conti l’articolo sta diventando già abbastanza lungo e dato che non ho lo spazio per poterti mostrare come iniziare a muoverti passo passo con i dati che potrai ottenere, vorrei almeno presentarti gli strumenti principali che possono esserti di aiuto quando inizi a lavorare con le WP API e con la struttura JSON.

I primi strumenti che mi trovo a consigliarti sono proprio relativi a quest’ultimo elemento perché molto spesso quando stiamo utilizzando sia il linguaggio JavaScript che direttamente il nostro browser, quando ci troviamo a consultare un endpoint non otteniamo altro che una massa di codice poco strutturato e veramente difficile da leggere; un po’ come l’immagine che segue:

Risposta JSON nel browser da un sito WordPressPraticamente quando consultiamo un sito che offre in risposta un oggetto JSON la sua lettura diventa veramente difficile e anche se questa non è una pratica che andremo a fare spesso, dato che all’interno dei linguaggi di programmazione è veramente facile selezionare le informazioni che desideriamo, la stessa cosa non può essere detta per quando stiamo studiando questi oggetti che otteniamo in risposta.

Per nostra fortuna, oltre alle varie estensioni per i browser e le funzionalità interne a FireBug, esiste uno strumento online completamente gratuito che ci permette di formattare questi oggetti e renderli ancora più leggibili, con molta fantasia è stato chiamato JSON Formatter.

Con una singola frase ti ho presentato ben 3 strumenti che ti aiuteranno nelle operazioni quotidiane che potrai effettuare con questi oggetti, ma se desideri approfondire ulteriormente questa sintassi e vuoi scoprire altri strumenti non posso fare altro che lasciarti il collegamento al sito madre di tutto il progetto: JSON.org. Grazie a questo potrai accedere a tutte le informazioni che ti permetteranno di utilizzarlo con qualsiasi linguaggio di programmazione.

Adesso è però giunto il momento di volgere il nostro sguardo alla nostra piattaforma preferita, quali strumenti ti posso consigliare da abbinare con WordPress e le sue nuove WP API? Una cosa che sicuramente non potrà mancare all’interno dei tuoi segnalibri è la documentazione per la nuova versione di queste API dove puoi trovare esempi e dettagli sui vari endpoint e elementi che potrai aspettarti in risposta.

Un utile plugin che ho trovato con i miei primi esperimenti è stato quello che permette di installare una console che aiuta a testare all’interno di una singola pagina web diversi endpoint e ci aiuta inoltre a navigarli in modo tale da sapere, prima ancora di dover scrivere una singola riga di codice, quali elementi dovremmo aspettarci.

Quali poteri hai liberato

Al momento non esistono molti altri strumenti che ci permettono di lavorare con queste strutture anche perché uno dei più grandi limiti è la nostra fantasia! In fin dei conti grazie alle WP API abbiamo a nostra disposizione una miriade di funzionalità che aspettano soltanto noi per essere svelate. Ma dato che in questo articolo ti avevo promesso di condividere con te quali siano i poteri che puoi sbloccare con questa tecnologia, lascia che provi a fornirti qualche idea.

Come dicevo anche nell’introduzione dell’articolo, poter fare affidamento a WordPress ci offre una solida struttura sulla quale poter basare il nostro lavoro; infatti non dovremo preoccuparci di creare la struttura del nostro database, le funzioni PHP che permettono di svolgere le comuni operazioni di CRUD e tantomeno dovremo stare attenti a sviluppare delle patch di sicurezza ogni volta che viene trovato un nuovo problema perché la comunità WordPress è veramente ottima in questo!

Con il rilascio delle WP API avremo ancora più tempo per dedicarci al nostro sviluppo dato che tutto quello che dovremo fare sarà focalizzare la nostra attenzione sulle funzionalità che intendiamo sviluppare.

Prendiamo ad esempio una soluzione che ti ho presentato un po’ di tempo fa all’interno di blogAndMore, la piattaforma Rainmaker rilasciata da Copyblogger. Se ancora non la conosci questa è la soluzione one-stop creata appositamente per tutti i marketer in circolazione che desiderano avere una piattaforma in grado di soddisfare le proprie necessità senza doversi preoccupare troppo dell’aspetto tecnico coinvolto. Gli sviluppatori di questa piattaforma avrebbero potuto partire da un CMS proprietario ma invece hanno scelto di utilizzare WordPress; ma hanno modificato incredibilmente il suo backend.

rainmaker-content

Per ottenere questo risultato hanno dovuto letteralmente smontare il backend di WordPress e sovrascriverlo per soddisfare le proprie necessità, ma questo perché quando è stata progettata questa soluzione non esisteva ancora il progetto delle WP API. Al giorno d’oggi puoi creare qualsiasi backend per gestire i contenuti presenti all’interno del tuo WordPress e come dice lo stesso Matt in una recente intervista le soluzioni che questo comporta ci porta ben lontani dal concetto di frontend e backend che tendenzialmente coinvolge questa piattaforma.

Con le WP API potrai creare esperienze utente completamente personalizzate e non ci saranno più grandi problemi su come permettere ai tuoi utenti di pubblicare un articolo senza dover passare dal backend; con delle semplici chiamate alle API sarai in grado di farli pubblicare direttamente dal tuo frontend o dalla soluzione migliore che hai deciso di sviluppare!

Questo concetto ci pone di fronte anche ad una nuova soluzione che ancora non è stata compresa appieno, anche se noi abbiamo cercato di presentartela all’interno di un webinar di skillsAndMore; ovvero dato che possiamo consultare e scrivere le informazioni del nostro WordPress da qualsiasi parte nel web, possiamo farlo anche dalle applicazioni mobile!

Come scopriremo con altri articoli, avere un’applicazione mobile in grado di consultare un endpoint ci permette di avere un accesso diretto ad un server web che potrà gestire molte delle informazioni utilizzate dall’applicazione stessa; cosa che oltre a semplificarci la vita dato che le informazioni saranno presenti sia sul sito web che sull’applicazione all’interno di un unico server, ci permette di essere molto più veloci anche nel rilascio dell’applicazione stessa 😀

Se non dovesse essere chiaro, i poteri che sarai in grado di liberare una volta padroneggiato queste tecnologie sono quasi infiniti! Il limite risiede, ancora una volta, nella nostra fantasia…

Anche se questo non è stato un articolo molto tecnico, spero che sia servito a farti capire quale possa essere un possibile futuro per la nostra piattaforma preferita e ti voglio chiedere se sei intenzionato a condividere con me i tuoi pensieri e dubbi perché sono incredibilmente curioso di conoscerli!

Lascia il tuo Pensiero

2 Responses to “Quali poteri potrai ottenere dalle REST API di WordPress?”

  1. leodamblog

    Ciao ho letto il tuo articolo perché stavo cercando una soluzione a un problema che mi hanno presentato i miei datori di lavoro ovvero visto che hanno dei documenti che rendono disponibili solo ai clienti che hanno acquistato la loro applicazione volevano fare si che quando questi si registrano al’applicazione l’app mandi una richiesta web service che faccia registrare l’utente, non ho ancora trovato il modo per fare questo ma devo dire che il tuo articolo mi è piaciuto molto e mi abbia fatto pensare alle molteplici funzionalità che il servizio rest e il protocollo Json offrono

    Rispondi
    • Andrea Barghigiani

      Ciao Leonardo,
      onestamente so che le REST API di WordPress sono ancora in sviluppo e la gestione degli utenti è proprio uno degli aspetti sul quale si stanno concentrando 😀 Comunque sia penso che un domani sarà possibile fare una cosa del genere perché è già possibile creare altre tipologie di contenuto sfruttando le API ma per saperlo non dovremo far altro che restare in ascolto sulle prossime novità che troveremo nelle future versioni WordPress.

      Purtroppo che io sappia non ci saranno grandi sviluppi in questo campo nella 4.6

      Rispondi