Uno sguardo all'API HTTP di WordPress un breve sondaggio di wp_remote_get

Quando si tratta di fare richieste remote nel contesto di siti Web, applicazioni web e persino progetti basati su WordPress, il modello che seguiamo è generalmente lo stesso:

  • Inizia una richiesta sul lato server
  • Gestisci la risposta quando viene recuperata leggendo la risposta o rilevando l'errore
  • Restituisce la risposta al chiamante

Questo particolare formato è lo stesso utilizzato in entrambe le funzionalità sincrone e asincrone (o basate su Ajax). Il fatto è che se stai costruendo un'applicazione web standard usando PHP, Rails, Java, .NET o qualsiasi altra piattaforma, allora ognuno di essi ha i propri modi per farlo.

Lo stesso vale per WordPress; tuttavia, se stai lavorando con WordPress, stai lavorando anche con PHP, il che significa che potresti sfruttare le funzioni di PHP piuttosto che le specifiche API di WordPress.

In questa serie in quattro parti, daremo un'occhiata a cosa significa fare un telecomando OTTENERE richiesta, e nella seconda parte daremo un'occhiata a un approccio pratico per farlo.

Quindi negli ultimi due articoli, esamineremo gli argomenti wp_remote_get accetta oltre a ciò che è possibile accettare da una risposta dal server quando viene completata una richiesta. In definitiva, dovremmo avere una piena comprensione dell'API di questo metodo e di come scrivere codice di qualità e difensivo quando viene implementato nei nostri progetti.

Ma prima, prendiamo un sondaggio su ciò che significa anche per fare una richiesta.


Cos'è una richiesta remota?

Semplicemente definito, una richiesta remota è quando un server inoltra una richiesta a un altro server. Questo può assumere diverse forme - a volte invia dati, a volte è semplicemente il polling per vedere se il server è disponibile, ea volte richiede dati.

In questa particolare serie di articoli, esamineremo cosa significa richiesta dati da un altro server. Ma prima, ecco come puoi concettualmente modellare un server parlando con un altro, facendo una richiesta e poi gestendo i dati:

Abbastanza facile da capire, giusto?

Per gli sviluppatori avanzati che stanno leggendo questo, sai che ci possono essere alcuni argomenti avanzati da trattare qui - forse l'autenticazione deve avvenire (come l'uso di chiavi e / o token), e sai che la risposta non sarà sempre sia chiaro come ciò che è definito - ma la verità è che se si guarda il processo da un punto di vista astratto, questo è ciò che si finisce per vedere.


Come sono le richieste fatte in PHP?

Questo varia da applicazione a applicazione, ma come accennato in precedenza in questo articolo ci concentriamo principalmente su PHP e WordPress e quindi il modo in cui le richieste sono fatte tipicamente all'interno di PHP utilizza una delle due funzioni:

  • file_get_contents
  • arricciare

Entrambi possono essere usati per richieste remote, ma uno è un po 'più flessibile dell'altro.

file_get_contents

Essenzialmente, file_get_contents accetta una stringa - fondamentalmente un URL - e restituirà i dati richiesti (o falsi in caso di errore).

Questo è probabilmente il modo più comune in cui gli sviluppatori principianti eseguiranno richieste remote. A dire il vero, lo facevo spesso - e lo faccio ancora, a seconda dei requisiti dell'applicazione web - ma questo è un argomento per un'altra serie.

I dettagli su file_get_contents può essere letto nel manuale PHP. Anche se daremo un'occhiata al modo WordPress di fare richieste remote, consiglio di provare questa particolare API solo per avere familiarità con ciò che offre.

arricciare

cURL - arricciatura scritta spesso - è l'abbreviazione di "libreria URL client". Proprio come il nome cita, questa è un'intera libreria - rispetto a una funzione - che offre agli sviluppatori un set completo di funzionalità per creare richieste remote.

Oltre a richiedere semplicemente dati da un URL di terze parti, puoi impostare parametri quali:

  • Come gestire i numeri di errore
  • Ottieni informazioni su un trasferimento specifico
  • Iniziare, eseguire o chiudere una sessione
  • Attendere l'attività su una connessione specifica
  • ... e altro ancora

Ovviamente, c'è Un sacco per imparare e Un sacco andando avanti con questa particolare biblioteca.

Personalmente, se sei uno sviluppatore avanzato, sono un fan dell'uso arricciare nel contesto di applicazioni Web basate su PHP per il livello di controllo robusto che offre.

Se non si ha familiarità con questa libreria, consiglio vivamente di leggerla nel manuale PHP.


Come vengono fatte le richieste in WordPress?

Naturalmente, come detto in tutto l'articolo, file_get_contents e arricciare sono importanti da sapere in PHP e sono spesso usati nel contesto di progetti WordPress; tuttavia, lì è una funzione preferita da utilizzare all'interno di WordPress.

Ricorda, proprio come abbiamo visto gli standard di codifica di WordPress per capire come scrivere al meglio il codice basato su WordPress, abbiamo anche bisogno di guardare le API a nostra disposizione per assicurarci che stiamo facendo le cose come raccomanda WordPress.

Quindi quando si tratta di fare OTTENERE richieste per WordPress, la funzione che abbiamo a disposizione è wp_remote_get.

La funzione accetta due argomenti:

  • L'URL a cui viene effettuata la richiesta
  • La matrice di argomenti da inviare insieme alla richiesta

L'array di argomenti è un po 'oltre lo scopo di questo particolare articolo; tuttavia, l'articolo Codex associato fornisce una rapida lettura per esattamente ciò che possiamo inviare insieme alla nostra richiesta.

Alcuni esempi includono:

  • Quanto tempo prima di scadere
  • La versione del protocollo HTTP da utilizzare
  • intestazioni
  • Biscotti
  • ... e altro ancora

Infine, la funzione richiederà un'intera serie di dati una volta inviata la risposta. Per esempio:

  • Le intestazioni dal server a cui è stata effettuata la richiesta
  • Il tipo di contenuto della risposta
  • La risposta effettiva
  • ... e altro ancora.

Parleremo di più della risposta nel terzo articolo di questa serie.

Ovviamente, la funzione è più semplice da capire ma è davvero potente. Per chi è curioso, parte dell'API HTTP di WordPress (di cui questa funzione fa parte) utilizza internamente la libreria cURL.


Facciamo una richiesta

Detto questo, iniziando una richiesta con wp_remote_get è davvero facile. In effetti, faremo proprio questo nel prossimo articolo della serie.

Nello specifico, vedremo come è facile comunicare con Twitter, ricevere dati e quindi visualizzarli nel browser. La cosa bella è che non dovremo nemmeno usare alcuna autenticazione OAuth o altre librerie.

Useremo wp_remote_get, gestire la risposta in modo appropriato, quindi visualizzare le informazioni sullo schermo.