Nel tutorial WordPress Rest API abbiamo iniziato a prendere dimestichezza con questa modalità di integrazione, vediamo oracome accedere alle API WordPress sul nostro sito wordpress e come configurare Postman al test.
Indice dei contenuti
API si ma non per tutti
Le API come detto espongono funzionalità che pemettono di aggiungere, modificare o eliminare articoli e post, consultare e modificare utenti, template ecc..
Possiamo immaginare cosa accadrebbe se questi privilegi fossero a disposizione senza una protezione (autenticazione).
Per ragioni di sicurezza quindi di default un utente non autenticato non può accedere ai contenuti del nostro sito tramite API.
Proteggiamo le API
Come possiamo quindi richiamare le API di WordPress in modo sicuro senza eseguire accesso al nostro sito?
Il modo più rapido è utilizzare il plugin “miniOrange API Authentication” che si occuperà di proteggere le API (non solo quelle di WordPress) implementando alcune modalità di autenticazione

La versione free del plugin offre una modalità di autenticazione tramite Basic Authentication e Api Key.
Modalità di sicurezza più avanzate come OAuth 2.0 sono disponibili nella vesione premium.
Per semplicità in questo tutorial utilizziamo la Basic Authentication che prevede l’utilizzo di una chiave tecnica (username/password di un utente censito nel nostro sito).
Scegliamo quindi la modalità “Basic Authentication” e salviamo la configurazione. Non dovremo specificare altro perchè l’utenza è da includere al momento della chiamata (nel nostro caso tramite Postman).
Creiamo il nuovo utente wordpress
Procediamo creando un nuovo utente evitando si assegnare ruolo di amministratore.
Questo perchè la modalità Basic Authentication offre un livello di sicurezza minimo perchè prevede il passaggio delle credenziali ad ogni chiamata verso la API.
Anche se il traffico della comunicazione risulta criptato dal protocollo https, soluzioni di autenticazione con Oauth 2.0 sono decisamente meglio perchè una protezione decisamente più elevata.
Procediamo creando il nuovo utente “bot” che utilizzeremo al momento della chiamata API

Quindi apriamo Postman e prepariamo la chiamata GET alla API posts configurando il Basic Authentication nel menù Authorization ed inseriamo username e password dell’utente wordpress che abbiamo creato al passo precedente.

Risolvere errore 401
Durante il mio primo test sul mio sito WordPress ho riscontrato l’errore 401 “Autorizzazione richiesta” come indicato nella schermata seguente:

Ho risolto modificando il file .htaccess aggiungendo la seguente istruzione
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
L’istruzione sopra è da aggiungere sotto l’istruzione RewriteBase /
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]