Come usare le REST-API di wordpress: Primo step abilitare JWT Authentication for WP REST API
Se stai leggendo questo articolo probabilmente hai necessità di interagire con il tuo WP via API. In questo e nei prossimi articoli farò vedere come configurare ed usare WP attraverso delle chiamate REST sia per leggere che per scrivere nuovi articoli.
Giusto per iniziare con un esempio semplice, ricordando che dal 2006 WordPress ha nativamente attivo il servizio restful api, possiamo fare una prova e verificare che ciò sia vero collegandosi al link:
https://<miodominio.com>/wp-json/wp/v2
Il risultato dovrebbe essere qualcosa del genere:
"namespace": "wp/v2", "routes": { "/wp/v2": { "namespace": "wp/v2", "methods": [ "GET" ], "endpoints": [ { "methods": [ "GET" ], "args": { "namespace": { "default": "wp/v2", "required": false }, "context": { "default": "view", "required": false } } } ], "_links": { "self": [ { "href": "https://www.domsoria.com/wp-json/wp/v2" } ] } }, "/wp/v2/posts": { "namespace": "wp/v2", "methods": [ "GET", "POST" ], "endpoints": [ { "methods": [ "GET" ], "args": { "context": { "description": "Scopo della richiesta; determina i campi che saranno presenti nella risposta.", "type": "string", "enum": [ "view", "embed", "edit" ], "default": "view", "required": false }, "page": { "description": "Pagina corrente dell'elenco.", "type": "integer", "default": 1, "minimum": 1, "required": false }, "per_page": { "description": "Numero massimo dei risultati da restituire nella serie dei risultati.", "type": "integer", "default": 10, "minimum": 1, "maximum": 100, "required": false }, "search": { "description": "Limita la serie di risultati a quelli contententi una stringa.", "type": "string", "required": false }, "after": { "description": "Limita l'insieme dei risultati a risorse pubblicate dopo una data fornita nello standard ISO8601. ", "type": "string", "format": "date-time", "required": false }, "modified_after": { "description": "Limita l'insieme dei risultati agli articoli pubblicati dopo una determinata data conforme allo standard ISO8601.", "type": "string", "format": "date-time", "required": false }, "author": { "description": "Limita la serie di risultati agli articoli assegnati ad autori specifici.", "type": "array", "items": { "type": "integer" }, "default": [ ], "required": false }, "author_exclude": { "description": "Garantisce che la serie di risultati escluda gli articoli assegnati ad autori specifici.", "type": "array", "items": { "type": "integer" }, "default": [ . . .
la lista di cui sopra da indicazioni di tutti i metodi che è possibile invocare per interagire con WP. Un altro esempio molto semplice è quello del recupero di tutti i post pubblicati. Per ottenere infatti la lista dei post pubblicati/pubblici sarà sufficiente lanciare il seguente comando:
curl -X GET https://<miodominio.com>/wp-json/wp/v2/posts
oppure via web semplicemente collegandosi al seguente link:
https://<miodominio.com>/wp-json/wp/v2/posts
Per poter effettuare delle operazioni di scrittura o leggere ad esempio dei post non pubblici sarà necessario prima di tutto eseguire una fase di autenticazione. Ovviamente ci sono diversi modi per potersi autenticare a WP tra cui usando la “basic authentication” passando login e password ma io preferisco utilizzare un meccanismo più robusto usando JWT Authentication.
Cerchiamo di capire come attivare il servizio di token auth via JWT. Prima di tutto sarà necessario installare il plugin: JWT Authentication for WP REST API.
Su questo punto non entro troppo in merito sarà sufficiente,, infatti, andare nella sezione plugin di WordPress ricercare il plugin chiamato appunto “JWT Authentication for WP-API” ed installare.
Completata la fase di installazione sarà necessario modificare le configurazioni in wp-admin.php e .httacces
In particolare sarà necessario aggiungere in wp-admin.php
define('JWT_AUTH_SECRET_KEY', 'anyValueIsOk');
ed in .htaccess
RewriteEngine on RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
Fatto ciò sarà sufficiente fare un test ed eseguire una prova di autenticazione.
Una via semplice è quella di usare ad esempio Postman
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments