Da diverso tempo le REST API di WordPress fanno parlare di sé. So che agli occhi di molti questo aggiornamento può sembrare qualcosa di poco conto ma ti assicuro che se continuerai a leggere troverai degli spunti molto interessanti per capire come sfruttarle al meglio.
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 è un’introduzione alle funzionalità delle REST API di WordPress ricca di spunti pratici dai quali potrai iniziare a sperimentare questi nuovi poteri.
Se stai ancora leggendo e sei curioso di che cosa potrai scoprire, 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?
Già, i poteri…
Soltanto avvicinandoti a WordPress hai ampliato i poteri che possiedi aggiungendo ai tuoi progetti un sistema di login incredibilmente sicuro che si interfaccia con un gran numero di social (grazie alle loro API), una completa applicazione CRUD testata da diversi anni, un sistema di template che consente di sviluppare il 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.
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. Quindi prima di svelarti quali siano questi poteri desidero aiutarti a 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.

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 senza neanche conoscere una riga di codice.
L’importante è essere onesti
Lo so, con la frase precedente è come se mi fossi dato una martellata sul dito ma quando la tecnologia aiuta veramente non posso fare a meno che dirlo apertamente 😉
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 siano mai esistite. Se oggi stai leggendo queste parole è proprio 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) e questo lo avvicina ad essere un’applicazione vera e propria, soltanto che al posto di disegnare le proprie finestre all’interno di un Desktop Envirionment lo fa all’interno del nostro browser.

Prima ho detto che è grazie alle molte applicazioni, infatti non credo che senza gli editor di codice o i gestori di email o le altre centinaia di applicazioni disponibili avremmo avuto WordPress come lo conosciamo oggi, ma torniamo sul nostro percorso.
Seguendo il percorso temporale possiamo dire che c’è stato un tempo in cui avevamo le applicazioni per i computer, poi sono arrivate quelle per cellulari e adesso prende vita il nome di applicazioni web (o web app)…
Perché tutte queste distinzioni?
Senza scendere nei dettagli, ogni sistema operativo ha sempre prediletto un proprio linguaggio di programmazione che permettesse di creare delle applicazioni da eseguire 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.

Peccato che il suo componente principale, che permetteva di eseguire il suo codice su qualsiasi computer (il suo motore quindi), è sempre stato il suo tallone d’Achille: troppo lento. Per questo motivo le applicazioni multipiattaforma (cross-platform) sono sempre state difficili da sviluppare e a parte qualche rara eccezione non 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 è presente un concetto molto vecchio che complica la vita di noi sviluppatori: dover apprendere nuovi linguaggi di programmazione.
[clickToTweet tweet=”Vuoi essere uno sviluppatore mobile? Crea due volte la tua applicazione: una #Java e una #Swift” quote=”Vuoi essere uno sviluppatore mobile? Crea due volte la tua applicazione: una #Java e una #Swift”]
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.
Discutere le basse prestazioni di cui soffrivano queste soluzioni qualche anno fa è come dire che WordPress è buono soltanto per i blog ed è per questo che 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 SkillsAndMore 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) dai 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 rispondere offrendo i dati richiesti e non soltanto con delle pagine HTML generate da del codice PHP, cosa che richiede molto lavoro macchina.
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 veicolate 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.
WordPress usa ancora PHP!
Nella frase precedente ho detto che WordPress non è più dipendente dal PHP, ma questo soltanto perché quando si usano le REST API il motore PHP non dovrà più essere utilizzato per generare pagine HTML ma soltanto per interrogare il database.
JSON – JavaScript Object Notation
Ecco che da un acronimo saltiamo a un altro che può sembrare altrettanto oscuro, sopratutto se in questi ultimi anni non hai avuto l’opportunità di 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 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 in questo campo 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. Invece il formato che creiamo 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.
Per fortuna nostra sono pochi gli sviluppatori (seri) che decidono di reinventare la ruota 🙂

Questo blocco di codice che ti ho appena inserito si riferisce all’oggetto JSON che ci viene restiuito consultando l’indirizzo http://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 vera potenza nell’uso dei JSON, una semplice dichiarazione di un oggetto (che all’occorrenza contiene altri oggetti e array) che può essere interpretata da qualsiasi linguaggio di programmazione e, di conseguenza, con qualsiasi ambiente di sviluppo.
Come attivare queste funzionalità
Il recente aggiornamento della versione 4.7 di WordPress ha integrato un’importantissima parte delle REST API che inizialmente sono state sviluppate all’interno di questo plugin. Il progetto finale è quello di permettere di interagire in qualsiasi modo possibile con la nostra piattaforma WordPress.
Per il momento non possiamo fare tutto, ma al tempo stesso la recente integrazione di tutta la parte interessata ai contenuti è stata integrata all’interno della piattaforma. Provala pure adesso! Dirigiti su https://skillsandmore.org/wp-json/wp/v2/posts
e inizia a consultare il JSON che elenca gli articoli più recenti pubblicati all’interno di SkillsAndMore.
La cosa ancor più interessante è che se vuoi testare questa funzionalità all’interno del tuo sito non dovrai fare altro che assicurarti di aver aggiornato la versione WordPress alla 4.7 e di sostituire il dominio skillsandmore.org
con il tuo.
Come ti ho anticipato, anche se gli sviluppatori che collaborano allo sviluppo del core di questa piattaforma stanno facendo molti passi in avanti per integrare anche gli altri aspetti delle API all’interno di questa piattaforma, la verità è che ci sono ancora molti altri test da fare per assicurarsi che tutto funzioni correttamente.
Per fortuna nostra c’è una soluzione che ci permette di saltare la fila…
Per poter iniziare a fare i propri esperimenti utilizzando tutte le REST API sviluppate fino a oggi, 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.
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 non ho lo spazio per poterti mostrare come iniziare a fare i primi passi con i dati che potrai ottenere. Quello che vorrei almeno presentarti sono 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 dedicati a quest’ultimo elemento perché, molto spesso, quando utilizziamo sia il linguaggio JavaScript che il nostro browser capita di dover interpretare una massa di codice poco strutturato e veramente difficile da leggere, un po’ come l’immagine che segue:
Praticamente quando consultiamo un sito che offre in risposta un oggetto JSON la sua lettura diventa veramente difficile, all’interno dei linguaggi di programmazione è veramente facile selezionare le informazioni che desideriamo, non possiamo dire lo stesso osservando una risposta del genere!
Per nostra fortuna, oltre alle varie estensioni per i browser, 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 sito potrai accedere a tutte le informazioni che ti permetteranno di utilizzarlo con qualsiasi linguaggio di programmazione.
Adesso è però giunto il momento di tornare a interessarci della nostra piattaforma, quali strumenti ti posso consigliare da abbinare con WordPress e le sue nuove REST API? Una cosa che sicuramente non potrà mancare all’interno dei tuoi segnalibri è la documentazione per la nuova versione dove troverai esempi e dettagli sui vari endpoint e i tipi di 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! Grazie alle REST API abbiamo a nostra disposizione moltissime 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 per le comuni operazioni di CRUD e tantomeno dovremo stare attenti a sviluppare delle patch di sicurezza ogni volta che viene trovato un nuovo problema. La community WordPress è veramente ottima in questo!
Con il rilascio delle REST API abbiamo più tempo per dedicarci alllo sviluppo dato che tutto quello che dovremo fare sarà focalizzare la nostra attenzione sulle funzionalità che intendiamo sviluppare.
Prendiamo in esame una soluzione che ti ho presentato un po’ di tempo fa, la piattaforma Rainmaker rilasciata da Copyblogger. Se ancora non la conosci questa è la soluzione one-stop è stata 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 modificandone il suo backend.
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 sua intervista, le soluzioni che questo comporta ci porta ben lontani dal concetto di frontend e backend che tendenzialmente coinvolge questa piattaforma.
Con le REST 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 chiamate API sarai in grado di farli pubblicare direttamente dal tuo frontend o dalla soluzione migliore che hai deciso di sviluppare!
Altro progetto che sta beneficiando moltissimo dalla creazione di queste API è sicuramente HappyTables! Inizialmente questo progetto è nato per essere un multisite contenente moltissimi servizi utili ai ristoratori e che gli permettevano di:
- avere un sito web
- avere strumenti di marketing integrati
- permettere la prenotazione dei tavoli
- avere un negozio online per la vendita del take away
A oggi questa piattaforma può fare molto di più e sono anche sicuro che sai che è possibile integrare tutte queste funzionalità all’interno di una classica installazione WordPress, ma la cosa interessante che viene offerta da questa soluzione è che tutto viene gestito attraverso delle interfacce personalizzate. Interfacce che sono state studiate, testate e migliorate nel tempo e che non rispecchiano assolutamente una classica interfaccia WordPress.
Questo concetto ci pone di fronte anche ad una nuova soluzione che ancora non è stata compresa appieno, dato che possiamo consultare e scrivere le informazioni del nostro WordPress da qualsiasi parte nel web, possiamo farlo anche dalle applicazioni mobile!
Infatti non dobbiamo guardare lontano per scoprire che la stessa applicazione offerta da WordPress.com (disponibile per desktop, Android e iOS) è stata interamente sviluppata utilizzando le REST API che sono state sviluppate appositamente per questa piattaforma e che sono disponibili anche a qualsiasi installazione WordPress all’interno della quale è installato il plugin Jetpack correttamente configurato.
Non tutte le API sono uguali
Le potenzialità di questa applicazione sono derivate dalle API sviluppate dalla Automattic e non quelle che sono state integrate nelle nostre piattaforme. Come dicevo, se vuoi sfruttare queste API assicurati di avere Jetpack installato e configurato per sfruttare questa caratteristica.
Grazie a questa applicazione, il cui nome in codice è Calypso, è possibile gestire completamente la propria installazione WordPress come per esempio l’installazione e l’aggiornamento di plugin e temi, gli utenti e ovviamente anche tutta la parte editoriale come la creazione e pubblicazione di articoli, pagine e qualsiasi altro Custom Post Type creato all’interno del CMS.

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 informazioni utilizzate dall’applicazione stessa, cosa che ci semplifica la vita e ci permette di essere molto più veloci nel rilascio dell’applicazione 😀
Se non dovesse essere chiaro, i poteri che sarai in grado di liberare una volta padroneggiate 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!
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
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
Scusa, ma il fatto che qualcosa sia “standard” non vuol dire che sia migliore: io da quando faccio Swift e Kotlin mi sento uno sviluppatore molto più capace rispetto a quando facevo HTML e JS, le cui prestazioni sono rimaste non proprio un granché e il cui futuro è affidato a framework client a dir poco opinabili. Il problema di fare la app in Swift/Kotlin (o di fare “due app”) è un problema di chi vuole rimanere ancorato al web, non tanto del cliente (né come costi, né come tempistiche)
Ciao Gabriele e intanto grazie per aver condiviso la tua opinione, ci fa molto piacere quando un lettore decide di investire il proprio tempo condividendo i propri punti di vista.
Rispondendo al tuo commento credo in primo luogo che ci sia stato un fraintendimento. All’interno dell’articolo parliamo delle REST API come soluzione per mettere in contatto un’applicazione (web o mobile) con WordPress in modo che sia possibile richiedere alcuni contenuti presenti all’interno della piattaforma.
Non era assolutamente mia intenzione far pensare che lo sviluppo di applicazioni ibride (o ibride/native se mi passi il termine) fosse l’unica soluzione che ci permettesse di svolgere questa attività. Come dici tu è possibile sviluppare applicazioni mobile in linguaggio nativo e le prestazioni sono migliori perché non ci sono “altre applicazioni” che permettono l’esecuzione di un codice in HTML, CSS e JS.
Allo stesso tempo in questa piattaforma parliamo nello specifico di sviluppo web (almeno per il momento) e quindi mi sembra un approccio più coerente consigliare ai miei lettori di sfruttare soluzioni ibride (come Ionic) o ibride/native (come React Native) per sviluppare le proprie applicazioni mobile.
Ripeto, non è l’unica e probabilmente la soluzione migliore, però in alcuni contesti sono scelte che possiamo prendere per poter soddisfare il cliente senza dover imparare due linguaggi di programmazione distinti e l’implementazione di tutti gli strumenti di test che questo comporta.
Spero di aver chiarito meglio il nostro punto di vista e di non averti offeso, se desideri approfondire ulteriormente non esitare a rispondere a questo commento.
Se poi desideri anche condividere le tue conoscenze con i nostri lettori ti invito a proporti come autore dei nostri articoli, in questa pagina puoi trovare tutte le informazioni di cui hai bisogno.
Ottimo articolo, grazie per la condivisione