Home CMS Le API REST WordPress

Le API REST WordPress

295
0

WordPress ha una grande quota di mercato nel web. Le API REST sono una tecnica in crescita e una grande opportunità per gli sviluppatori. Sapere come creare API e come utilizzarle ti dà un grande vantaggio. Un’API REST può essere utilizzata ovunque. Su applicazioni mobili, su front-end (app web) o su qualsiasi altro dispositivo che abbia accesso alla rete. Forse il tuo cliente ha già un sito in esecuzione su WordPress e desidera anche un’applicazione mobile. Puoi creare l’API utilizzando codice personalizzato e facendo affidamento sul database, ma ciò può causare molta frustrazione. Forse hanno fretta e vogliono l’API il prima possibile. In WordPress è semplice come installare un plugin. In questo articolo forniremo una panoramica generale del plugin JSON REST API. Tratteremo come funziona questo plugin e la filosofia di base dell’architettura REST.

Preparazione

Prendi l’ultima versione dell’API JSON REST nella directory dei plugin di WordPress. Installalo e attivalo. Ora hai un’API REST pronta per l’uso. Hai bisogno di un client REST per testarlo ed esplorarlo. Ci sono molti strumenti per quel lavoro. Non limitarti solo a questi quattro strumenti. Esistono molti altri client REST. Il primo è cURL. È uno strumento da riga di comando che può inviare richieste diverse all’endpoint specificato. Non è solo correlato all’API REST, ma è uno strumento di richiesta HTTP generale. Molti esempi di test su altri articoli vengono realizzati utilizzando questo strumento. È lo strumento HTTP universale che può essere tradotto in qualsiasi linguaggio di programmazione. Uno degli strumenti che utilizzo solitamente è PHPStorm REST Client. Poiché lavoro principalmente con questo IDE durante lo sviluppo, per me è più semplice utilizzare uno strumento a cui posso accedere più rapidamente. Molti altri IDE sono dotati di client REST integrato per rendere lo sviluppo dell’API REST più semplice e veloce. Il terzo e quello che consiglio vivamente è Postman. È il client REST più semplice e intuitivo con cui abbia mai lavorato. Sfortunatamente, è disponibile solo come estensione di Chrome. Se usi Firefox c’è una bella estensione chiamata RESTClient.

Esplorazione dell’architettura REST
La prima cosa che devi fare è verificare se questo plugin funziona, dov’è il suo endpoint, l’URL di base che contiene tutte le informazioni sullo schema, tutte le risorse (raccolte) e i percorsi. Il plugin aggiunge un nuovo campo chiamato “`Link`” sull’intestazione, quindi controllalo nell’intestazione della risposta. Se usi Postman o qualsiasi altro client GUI, controlla semplicemente l’intestazione. Se usi cURL esegui questo comando sulla tua home page:

curl -I http://yoursite.com/

L’opzione header acquisisce solo l’intestazione. Nel mio caso l’endpoint è local.wordpress.dev/wp-json. Se hai lasciato il permalink al suo valore predefinito nelle impostazioni, potresti avere un valore del collegamento simile a questo: http://local.wordpress.dev/?json_route=/. Cambia solo le regole di riscrittura ma non altre modifiche essenziali. Tutto è uguale nei due casi. L’endpoint dell’indice (o endpoint API) è il punto di partenza. Puoi esplorare l’intera API da lì. Ti fornisce tutte le informazioni sull’API. Fornisce informazioni sulle raccolte, sulle entità e su come sono mappate sui percorsi. Effettua una richiesta GET al tuo endpoint e guarda cosa restituisce. Sui client REST è facile perché hai a che fare con l’interfaccia GUI. Vediamo come si fa utilizzando cURL.

curl http://local.wordpress.dev/wp-json/

Nel mio caso restituisce un grande file JSON simile a questo.

{
"name": "Local WordPress Dev",
"description": "Just another WordPress site",
"URL": "http://local.wordpress.dev",
"routes": {
"/": {
"supports": [
"HEAD",
"GET"
],
"meta": {
"self": "http://local.wordpress.dev/wp-json/"
}
},
"/posts": {
"supports": [
"HEAD",
"GET",
"POST"
],
"meta": {
"self": "http://local.wordpress.dev/wp-json/posts"
},
"accepts_json": true
},
"/posts/<id>": {
"supports": [
"HEAD",
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"accepts_json": true
},
"/posts/<id>/revisions": {
"supports": [
"HEAD",
"GET"
]
}
},
"authentication": [],
"meta": {
"links": {
"help": "https://github.com/WP-API/WP-API",
"profile": "https://raw.github.com/WP-API/WP-API/master/docs/schema.json"
}
}
}

In realtà la risposta è troppo lunga, quindi ne ho rimossa la maggior parte. Il percorso dell’indice (endpoint) fornisce informazioni sul titolo del sito, la descrizione e il suo URL. Tutti i percorsi che puoi trovare sull’API sono mappati anche nel campo “percorsi”. post, utenti, media, pagine sono Collezioni. Le collezioni sono un gruppo di entità. Un’entità è un singolo post o una singola pagina con il suo ID. Diciamo che vogliamo vedere gli ultimi post. L’endpoint per la raccolta è api_endpoint/posts. Ciò restituisce gli ultimi post. L’entità è api_endpoint/posts/ID con l’ID fornito come argomento. Usando cURL, il comando sarebbe:
curl http://local.wordpress.dev/wp-json/posts
e
curl http://local.wordpress.dev/wp-json/1
Recuperare i dati è una buona cosa, ma ci sono momenti in cui vogliamo pubblicare i dati.

POST, UPDATE, DELETE

Voglio condividere alcuni problemi che ho riscontrato quando ho provato a pubblicare o eliminare dati. Per prima cosa devi autenticarti. Esistono tre modi per eseguire l’autenticazione. Il primo utilizza i cookie. Questo è un metodo non ampiamente utilizzato quando si lavora con le API. Quando un utente naviga sul Web, le pagine tendono a memorizzare dati lato utente. Il metodo dei cookie qui è leggermente diverso utilizzando il metodo nonces. Il secondo è il metodo OAuth. Questo plugin implementa la versione 1.0a di OAuth. Questo metodo è ampiamente utilizzato. Google, Facebook, Twitter e Flickr utilizzano OAuth per l’autenticazione di terze parti. OAuth è nella versione due ma hanno scelto di utilizzare la versione 1.0a. C’è un grande dibattito per la versione due. Alcune grandi aziende non sono passate alla versione due per ragioni diverse, ma principalmente per preoccupazioni relative alla sicurezza. La terza è l’autenticazione di base. Usando questo metodo devi inviare il tuo nome utente e password ogni volta che fai una richiesta. Gli strumenti client per i test REST di solito hanno questo metodo implementato da soli. Questo metodo viene utilizzato principalmente durante lo sviluppo. Viene utilizzato raramente in produzione. In produzione, considera l’utilizzo di OAuth. Sfortunatamente, il plugin di autenticazione di base non viene aggiornato spesso. Hanno concentrato tutti i loro sforzi sul plugin OAuth. Questo plugin non può essere trovato su wordpress.org ma solo sul suo repository GitHub. Devi installarlo manualmente. Nella directory del plugin esegui questo comando:
git clone https://github.com/WP-API/Basic-Auth basicAuth
In alternativa visita la pagina GitHub e scarica il plugin e installalo manualmente tramite FTP. Quindi vai alla dashboard e attivala. Questo plugin presenta alcuni problemi con i server non Apache. Poiché utilizzo principalmente WordPress VVV che è un’installazione Vagrant, presenta problemi perché VVV viene fornito con nginx. Cambia la configurazione del permalink se la tua è quella predefinita. Ha funzionato per me.

Ora che abbiamo impostato l’autenticazione è il momento di creare alcuni post. Postman ha implementato l’autenticazione di base. Inserisci il nome utente e la password se usi Postman e ricorderà la codifica base 64 ogni volta che effettua una richiesta. Per vedere se funziona, fai una richiesta in “index_endpoint/users/me”. Restituisce le informazioni su di te. Se provi ad accedere a questo URL senza utilizzare l’autenticazione di base o altri metodi di autenticazione, l’API restituirà:

[
{
"code": "json_not_logged_in",
"message": "You are not currently logged in."
}
]

Proviamo a effettuare una richiesta tramite cURL e includiamo anche il metodo Basic Auth

curl --user admin:password http://local.wordpress.dev/wp-json/users/me

L’opzione –user crea l’argomento admin:password che fondamentalmente è solo la codifica di quel testo semplice. cURL crea autonomamente le intestazioni della richiesta per l’autenticazione di base aggiungendo un campo aggiuntivo. Questo è ciò che aggiunge nel mio caso:

Authorization: Basic YWRtaW46cGFzc3dvcmQ=

Questo è ciò che viene restituito quando provo ad accedere al mio profilo utilizzando le credenziali fornite.

{
"ID": 1,
"username": "admin",
"name": "admin",
"first_name": "",
"last_name": "",
"nickname": "admin",
"slug": "admin",
"URL": "",
"avatar": "https://gravatar.com/avatar/06e92fdf4a9a63441dff65945114b47f?s=96",
"description": "",
"registered": "2014-07-17T22:59:59+00:00",
"roles": [
"administrator"
],
"capabilities": {
"switch_themes": true,
"edit_themes": true,
"activate_plugins": true,
"edit_plugins": true,
"edit_users": true,
"edit_files": true,
"manage_options": true,
"moderate_comments": true,
"manage_categories": true,
"manage_links": true,
"upload_files": true,
"import": true,
"administrator": true
},
"email": false,
"meta": {
"links": {
"self": "http://local.wordpress.dev/wp-json/users/1",
"archives": "http://local.wordpress.dev/wp-json/users/1/posts"
}
}
}

Ulteriori esplorazioni
Non limitarti. Il team dell’API REST di WordPress dispone anche di altri strumenti strettamente integrati con questo plugin. Hanno un Client Cli, Client JS e un Client PHP per funzionare con la tua API immediatamente. Consulta anche la loro documentazione per informazioni tecniche più approfondite. Sapere come usare questo plugin è una cosa, ma il miglior consiglio che posso darti in questo caso è: “non limitarti”. Ci sono così tante informazioni là fuori su REST. Qui su SitePoint abbiamo una bella serie sulla creazione di un’API REST da zero di Vito Tardia.
Conclusione
Creare un’API REST su WordPress è semplice. Non è necessario crearne uno da zero se utilizzi WordPress. È un dato di fatto, l’endpoint dell’indice ti dice tutto su questo plugin e su come usarlo. Abbiamo trattato raccolte, entità e come manipolare alcuni dati utilizzando verbi diversi (GET, POST, PUT, DELETE). Un aspetto importante durante lo sviluppo è anche l’autenticazione, quindi abbiamo trattato anche questo. Considera OAuth 1.0a durante lo sviluppo per la produzione. Puoi anche utilizzare l’autenticazione di base, ma OAuth è già testato e supportato da numerose grandi aziende. Cosa ne pensi delle API REST su WordPress? Compete con le API realizzate a mano? Conosci altri plugin WordPress su REST? Fatecelo sapere nei commenti qui sotto.
Domande frequenti (FAQ) sull’API REST JSON di WordPress
Qual è la differenza tra l’API REST JSON di WordPress e le altre API?

L’API REST JSON di WordPress è un’API specifica che consente agli sviluppatori di interagire con i dati di WordPress in modo più flessibile ed efficiente. A differenza di altre API, utilizza JSON (JavaScript Object Notation), un formato leggero di interscambio di dati che è facile da leggere e scrivere per gli esseri umani e facile da analizzare e generare per le macchine. Ciò lo rende uno strumento potente per gli sviluppatori che desiderano creare, leggere, aggiornare ed eliminare contenuti WordPress da JavaScript lato client o da applicazioni esterne.
Come posso estendere l’API REST di WordPress?

L’estensione dell’API REST di WordPress comporta l’aggiunta di nuovi percorsi ed endpoint, che consentono di interagire con ulteriori tipi di dati. Questo può essere fatto utilizzando la funzione Register_rest_route(), che consente di specificare l’URL del nuovo percorso, i metodi a cui risponde e la funzione di callback che dovrebbe essere utilizzata per gestire le richieste.
Quali sono i vantaggi dell’utilizzo dell’API REST di WordPress?

L’API REST di WordPress offre numerosi vantaggi. Consente agli sviluppatori di interagire con i dati di WordPress in modo più flessibile ed efficiente, semplificando la creazione, la lettura, l’aggiornamento e l’eliminazione dei contenuti. Consente inoltre la creazione di applicazioni web più dinamiche e interattive, poiché consente il recupero e la manipolazione dei dati da JavaScript lato client o da applicazioni esterne.
Quanto è sicura l’API REST di WordPress?

L’API REST di WordPress include diverse funzionalità di sicurezza per proteggere i tuoi dati. Utilizza un callback delle autorizzazioni per verificare se un utente ha il diritto di eseguire una determinata azione e supporta i nonce per la protezione CSRF. Tuttavia, come qualsiasi API, è importante utilizzarla in modo responsabile e seguire le migliori pratiche per la sicurezza.
Posso utilizzare l’API REST di WordPress con altri linguaggi di programmazione?

Sì, l’API REST di WordPress può essere utilizzata con qualsiasi linguaggio di programmazione in grado di inviare richieste HTTP e analizzare JSON. Ciò include linguaggi come Python, Ruby e Java, tra gli altri.
Come posso risolvere i problemi con l’API REST di WordPress?

La risoluzione dei problemi con l’API REST di WordPress può comportare diversi passaggi. Innanzitutto, controlla il codice di stato HTTP restituito dall’API per vedere se indica un errore. Puoi anche utilizzare il filtro “rest_pre_serve_request” per esaminare la risposta del server prima che venga inviata.
Quali sono alcuni casi d’uso comuni per l’API REST di WordPress?

L’API REST di WordPress può essere utilizzata per un’ampia gamma di applicazioni, dalla creazione di app mobili che interagiscono con il tuo sito WordPress, all’integrazione del tuo sito con servizi di terze parti, alla creazione di applicazioni web complete utilizzando WordPress come backend.
Come posso ottimizzare le prestazioni dell’API REST di WordPress?

L’ottimizzazione delle prestazioni dell’API REST di WordPress può comportare diverse strategie, come la memorizzazione nella cache delle risposte, la limitazione del numero di richieste e l’utilizzo del parametro “campi” per limitare la quantità di dati restituiti dall’API.
Posso utilizzare l’API REST di WordPress per creare tipi di post personalizzati?

Sì, l’API REST di WordPress supporta tipi di post personalizzati. Puoi registrare un tipo di post personalizzato con il parametro “show_in_rest” impostato su true, che lo renderà disponibile tramite l’API.
Come posso autenticare le richieste all’API REST di WordPress?

L’API REST di WordPress supporta diversi metodi di autenticazione, tra cui l’autenticazione dei cookie, OAuth e l’autenticazione di base. Tuttavia, è importante notare che alcuni metodi potrebbero non essere adatti a tutti i casi d’uso e dovresti scegliere il metodo più adatto alle tue esigenze.

Previous articlePHP array() Function
Next articleSplash Page Script

LEAVE A REPLY

Please enter your comment!
Please enter your name here