La REST API di WordPress: nel cuore del CMS

Il Content Management System (CMS) Wordpress raccoglie sempre più consensi. Rispetto ad altri CMS, permette di creare siti per scopi diversi in modo relativamente semplice. Possono occuparsi della cura dei siti anche semplici redattori che dispongono di solide conoscenze di Office. Inoltre, gli amministratori web possono attingere a più di 55.000 plug-in che svolgono molti compiti del sito e sono per la maggior parte gratuiti nella loro versione base.

Consiglio

Abbiamo riassunto tutti i vantaggi per i vostri siti WordPress nei modelli tariffari “Essential”, “Business” e “Unlimited”. Approfittate della semplicità di accesso, della sicurezza inclusa e della nostra piattaforma ottimizzata per il vostro hosting di WordPress.

Che cos’è la REST API di WordPress?

REST API è un’interfaccia che permette di comunicare con il database utilizzato da WordPress. L’abbreviazione API sta per "Application Programming Interface”, in italiano “interfaccia di programmazione di un'applicazione”. Tale interfaccia consente lo scambio tra diversi programmi secondo un modello prestabilito; in maniera analoga alle interazioni tra due persone che sono in grado di capirsi soltanto se utilizzano una lingua comprensibile a entrambe. Nel nostro articolo “API:Cosa bisogna sapere sulle interfacce di programmazione” approfondiamo ulteriormente l’argomento.

L'abbreviazione REST sta invece per “Representational State Transfer”. Si tratta dei principi per lo scambio di informazioni, introdotti nell’anno 1994 dall'informatico statunitense Roy Fielding:

  • interfaccia unica: l’URL per accedere alle risorse deve essere uniforme, coerente e accessibile tramite un metodo comune come GET.
  • Struttura client-server: se cambia la tecnologia del server (per esempio WordPress), un'applicazione di un client come un’app deve comunque continuare ad accedervi.
  • Assenza di stato: il server non modifica il proprio stato in caso di nuova richiesta tramite API e non salva la richiesta.
  • Cacheable: sia il server che il client devono garantire un alto livello di velocità e conformità.
  • Layered System: l'accesso è possibile attraverso più strati (layer).
  • Code on Demand (facoltativo): i codici eseguibili possono essere trasmessi al client in caso di necessità.

Questi vincoli fanno parte del cosiddetto Core, ossia della programmazione base del Content Management System dalla versione 4.7 di Wordpress. Prima di allora, cioè fino al 13 maggio 2018, era presente il plug-in “WP REST API (WP API)”. Dalla versione 5.x di Wordpress sono stati inseriti elementi nel Core del sistema, che aumentano le possibilità di comunicazione esistenti con altre applicazioni (web).

Managed WordPress Hosting con IONOS!

Lancia velocemente il tuo sito web e approfitta della versione di WordPress più sicura e aggiornata!

Dominio gratis
SSL
Supporto 24/7

Cosa si può fare con la REST API di WordPress?

L’interfaccia rende possibile la comunicazione diretta con il database utilizzato da WordPress, dove sono salvate tutte le informazioni di un sito. Questa banca dati si utilizza con il database management system MySQL, un software open source. Esistono dei comandi per la comunicazione che permettono l’accesso attraverso l’API “inclusa” in WordPress. Sono possibili diverse strade.

Accesso alla banca dati via terminale

La REST API di WordPress consente l'accesso ai contenuti di un sito WordPress attraverso il prompt dei comandi di Windows, come spiegato di seguito:

  • cliccate con il tasto destro del mouse sull'icona di Windows > “Esegui” > digitate “cmd” nella finestra > “OK”.
  • Attivate la ricerca nella barra delle applicazioni > Digitare “cmd > Cliccate su “Prompt dei comandi”

Oppure il Terminale su macOS:

  • Usando la combinazione di tasti “cmd” + [Spazio]. Da qui digitate “Terminale” e fate doppio clic sul risultato.
  • Nella barra superiore del menu sulla scrivania selezionate “Vai a” > “Applicazioni/Utility”; nella finestra che si aprirà cliccate due volte su “Terminale”.
  • Nel “Dock” andate su “Programmi” > “Applicazioni/Utility” > “Terminale”.

I comandi effettivi saranno inseriti dopo il prompt che lampeggia sullo schermo, ad esempio:

C:\Users\VostroNomeUtente>_

Inserite la seguente indicazione:

curl -X OPTIONS -i https://vostrodominio.it/wp-json/

Premete “Invio” e dopo pochi secondi vi apparirà il risultato sullo schermo. Si tratta dei dati base del sito con le opzioni permesse (“OPTIONS”). Tra i vari si riconosce il comando GET:“Allow:GET”.

Con il comando

curl -X GET http://vostrodominio.it/wp-json/

Riceverete tutte le informazioni dalla banca dati, uguali nel contenuto al processo illustrato nel prossimo paragrafo.

Utilizzare la REST API di WordPress dal browser

I contenuti della banca dati di WordPress sono consultabili anche aprendo un browser HTTP. Anche qui si usa il formato JSON.

https://vostrodominio.it/wp-json/
Fatto

JSON è l’abbreviazione di “JavaScript Object Notation”, ovvero un formato di testo per lo scambio di dati. È facile da imparare e leggere e offre un uso flessibile, come spiegato nel nostro tutorial di mark-up con JSON-LD e nel nostro articolo a proposito di JSONP: script per query tra domini con JSONP.

Le informazioni richieste saranno a disposizione come se si trattasse di un libro aperto. Per fare un’analisi più approfondita dei contenuti del sito, la REST API di WordPress permette, grazie all’uso di numerosi comandi, di aprire in modo dettagliato componenti definite della banca dati. L’apertura dei post (contributi) sarà ad esempio con:

 

https://ihredomain.de/wp-json/wp/v2/posts

Così riceverete una panoramica di tutti i post (contributi) della banca dati con le versioni eventualmente disponibili, i link, i contenuti media, l’autore e molto altro ancora. Nella banca dati di WordPress, ciascun singolo post è contraddistinto in modo univoco dal suo ID.

Per leggere un singolo post sul browser, basta inserire il suo ID nel box di ricerca:

https://vostrodominio.it/wp-json/wp/v2/posts/6576

Questo procedimento si può applicare a tutti i contenuti:Oltre ai post, anche per le pagine (pages), contenuti media (media), autori (author) e molto altro ancora. La guida della REST API di WordPress con la referenza completa dei comandi è disponibile come REST API Handbook su WordPress.org, il sito per gli sviluppatori.

La REST API di WordPress nella pratica

A cosa serve quest’API di WordPress? Ve lo mostreremo con un semplice esempio pratico: un nuovo sito dovrà raccogliere tutte le news di altri fornitori di servizi internet. Questo funzionerà con la API di WordPress soltanto se anche gli altri siti esistenti sono programmati con WordPress. A tale scopo verranno richiesti ai server selezionati i contenuti con relativo ID.

Esistono diverse possibilità di programmazione per aprire sempre i contenuti più aggiornati tra cui il linguaggio di scripting PHP o il Query della biblioteca di JavaScript. Ve li presentiamo con l’ausilio di due semplici esempi di codice per la API di WordPress.

Leggere un post con PHP

Per leggere un post proveniente da un altro sito WordPress, si inserisce un segmento di codice tra <body> … </body> in una pagina HTML. Questa pagina deve essere nelle condizioni di trattare un PHP, che in questo esempio abbiamo nominato “test-wp-rest-api.php”. Il nome del campo relativo si deduce dalla richiesta JSON rappresentata in alto (guide, title, link, content …). Il segmento di codice è composto da uno script PHP, che prende le informazioni, e una componente HTML, che riporta tramite PHP i dati letti.

<!--?php</codesnippet-->
$url = 'https://www.miosito.it/wp-json/wp/v2/posts/6576'; // Il path della richiesta JSON con ID.
$data = file_get_contents($url); // Trasmettere il contenuto in una variabile
$mydata = json_decode($data, true); // decodificare stringa JSON
?>
<h1>PHP:Leggere il post con la REST API di WordPress</h1> // Intestazione
<div id="mydata"></div>
<!--?php echo $mydata['content']['rendered']; ?--> // Rilascio del 'content' con l’ID 6576

Leggere post con jQuery

jQuery è un'alternativa per leggere i contenuti. Per farlo, questa library deve essere inserita nell’intestazione della pagina. Funziona anche per i file con estensione .html.


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> // inserire jQuery
<script>// la parte per leggere i dati del post</codesnippet></script>
$(function() {
$.getJSON('https://mtmedia.de/wp-json/wp/v2/posts/6576', function(alldata) {
var contentElm = alldata.content.rendered
$(contentElm).appendTo("#mydata");
});
});
<h1>jQuery:Leggere il post con la REST API di WordPress</h1> // Intestazione
<div id="mydata"> Rilascio del 'content' del post con l’ID 6576</div>

Il risultato nel browser è identico a quello programmato in PHP.I contenuti tramite jQuery vengono rilasciati senza ulteriori variabili nel container DIV.

Cosa accade nei siti con un altro CMS?

L’API, e cioè la REST API di WordPress, è una componente integrata della programmazione con WordPress. Perciò questa interfaccia è a disposizione unicamente per le richieste di siti programmati con WordPress.

Il tentativo di richiesta genera una notifica di errore 404. Per questi siti non esistono altre soluzioni per inviare richieste alla banca dati del CMS.

Bloccare l'accesso alla REST API di WordPress

Non tutti, però, desiderano che le informazioni sul proprio sito possano essere lette, o addirittura utilizzate, in modo così semplice. Per impedire che ciò accada, esiste una barriera attivabile nel back end di WordPress.

Come qualsiasi altro plug-in, per impedire l'accesso a soggetti non autorizzati il “Disable WP REST API” deve essere attivato dopo l’installazione dal repository di WordPress, non sono necessarie altre impostazioni.

Il codice di stato “401” (Unauthorized) indica che il server ha respinto una richiesta HTTP per un’autenticazione mancante o non valida. A differenza del “403”, in questo caso l’autenticazione è possibile.

In questo modo molti siti si proteggono attivamente per impedire il furto di contenuti automatizzato. Ricevere l’autorizzazione dei gestori di un sito per utilizzare contenuti estranei non è soltanto una questione di buone maniere, ma anche di rispetto di chi ne detiene i diritti. Per verificare con il proprio sito basta impostare il plug-in su “Disattivato”. In questo modo tutti i contenuti della banca dati possono essere richiesti come descritto. I dati contenuti nel plug-in non possono andare persi.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.