TUTORIAL WORDPRESS – CREARE PLUGIN PER API REST

Solitamente uso WordPress come CMS, lo trovo comodo e semplice da usare qualora non siano presenti particolare esigenze da parte del cliente.  Da poco tempo ho scoperto la presenza della APi Rest pienamente supportate dalla versione 4.7, il che fa si che WordPress possa essere utilizzato come backend per architetture a servizi di tipo REST. In breve WordPress permette di definire agevolmente endpoint in grado di ricevere e inviare oggetti di tipo JSON (JavaScript Object Notation). JSON è un formato leggero per l’interscambio di dati, più leggero dell’XML e ciò ha fatto che l’architettura REST con JSON si presenti come alternativa ad una architettura SOAP con XML. Per chi volesse maggiori dettagli su REST rimando ai ragazzi di HTML.IT

Nel mio caso l’esigenza è quella di realizzare un app android che acceda ai contenuti gestiti su una piattaforma WordPress e ne consenta la lettura e/o la modifica.

In questo articolo vedremo come realizzare un servizio REST. Per fare questo occorre realizzare un plugin wordpress, definire l’endpoint da gestire e la logica con cui gestire le chiamate ricevute.

Andiamo per ordine, per realizzare il plugin occorre caricare un file php nella cartella /wp-content/plugins. Tale file deve presentare una intestazione particolare, che consenta a WordPress di individuarlo e di consentire tramite la dashboard di attivarlo. Di seguito un esempio:

Se avete fatto correttamente, accedendo alla sezione plugin di WordPress trovere il plugin da attivare

Il plugin compare dopo aver caricato il file php contenente la sua definizione

A questo punto attiviamo il file ma non essendoci alcun endpoint definito non vedremo effetti. Per definire l’endpoint ci avvaliamo della direttiva add_action che consente di stabilire le regole di invocazione del servizio e la logica con cui restituire il dato

Il comando add action invoca la direttiva register_rest_route che stabilisce l’url da invocare, il metodo HTTP con cui invocare il servizio e la funzione da invocare). Nell’esempio fornito il plugin risponde alla chiamata GET del servizio  http://www.valeriofinazzo.it/wp-json/vfplugin/v1/posts/.

Il metodo cakllback prevede di chiamare la routine api_get_posts che recupera tutti gli articoli presenti nel sito serializzati in formato json

La serializzazione viene gestita in modo trasparente da WordPress. Pertanto il servizio è attivo e non è richiesto altro.

A seguire il codice completo