O privire la API-ul WordPress HTTP o scurtă sondaj de wp_remote_get

Când vine vorba de a face cereri la distanță în contextul site-urilor web, al aplicațiilor web și chiar al proiectelor bazate pe WordPress, modelul pe care îl urmăm este, în general, același:

  • Inițiați o cerere pe partea de server
  • Manipulați răspunsul atunci când este preluat fie prin citirea răspunsului, fie prin prinderea erorii
  • Reveniți răspunsul la apelant

Acest format particular este același, care este utilizat atât în ​​funcțiile sincrone cât și asincrone (sau bazate pe Ajax). Lucrul este că, dacă construiți o aplicație web standard folosind PHP, Rails, Java, .NET sau orice altă platformă, atunci fiecare are propriile căi de a face acest lucru.

Același lucru este valabil și pentru WordPress; cu toate acestea, dacă lucrați cu WordPress, lucrați și cu PHP, ceea ce înseamnă că este posibil să folosiți funcții PHP mai degrabă decât WordPress specifice API-urilor.

În această serie de patru părți, vom examina ceea ce înseamnă a face o telecomandă OBȚINE cererea, iar în a doua parte, vom examina o abordare practică în acest sens.

Apoi, în ultimele două articole, vom examina argumentele pe care le facem wp_remote_get acceptă și ceea ce puteți accepta dintr-un răspuns de la server când o solicitare este finalizată. În cele din urmă, ar trebui să avem o înțelegere completă a API-ului acestei metode, precum și cum să scriem codul de calitate și defensiv atunci când îl implementăm în proiectele noastre.

Dar mai întâi, să facem un studiu asupra a ceea ce înseamnă chiar să faceți o cerere.


Ce este o solicitare la distanță?

Pur și simplu definit, o solicitare la distanță este atunci când un server face o cerere către un alt server. Acest lucru poate lua mai multe forme - uneori trimite date, uneori este pur și simplu de interogare pentru a vedea dacă serverul este disponibil și, uneori, solicită date.

În această serie specială de articole, vom examina ce înseamnă să cerere date de la un alt server. Dar, mai întâi, iată cum puteți modela în mod conceptual un server care să vorbească cu altul, făcând o solicitare și apoi tratând datele:

Destul de ușor de înțeles, corect?

Pentru dezvoltatorii avansați care citesc acest lucru, știi că pot exista câteva subiecte avansate care să se acopere aici - probabil că trebuie să se facă autentificare (cum ar fi utilizarea cheilor și / sau jetoanelor) și știți că răspunsul nu va fi întotdeauna să fie la fel de limpede ca ceea ce este definit - dar adevărul este că dacă vă uitați la proces dintr-un punct de vedere abstract, aceasta este ceea ce veți sfârși prin a vedea.


Cum se fac cererile în PHP?

Acest lucru variază de la aplicație la aplicație, dar așa cum am menționat mai devreme în acest articol, suntem în primul rând axați pe PHP și WordPress și astfel modul în care cererile sunt de obicei făcute în cadrul PHP utilizează una din cele două funcții:

  • file_get_contents
  • răsuci

Ambele pot fi folosite pentru cereri la distanță, dar unul este un pic mai flexibil decât celălalt.

file_get_contents

In esenta, file_get_contents acceptă un șir - în principiu o adresă URL - și va returna datele solicitate (sau false pe o eșec).

Acesta este, probabil, modul cel mai obișnuit în care dezvoltatorii novici vor face cereri la distanță. Adevărul este că am făcut acest lucru mult - și încă fac, în funcție de cerințele aplicației web - dar acesta este un subiect pentru o altă serie.

Detaliile despre file_get_contents pot fi citite în manualul PHP. Deși vom analiza modul WordPress de a face cereri la distanță, vă recomand să verificați acest API special pentru a fi familiarizat cu ceea ce oferă.

răsuci

cURL - adesea scrisă curl - este scurtă pentru "biblioteca URL a clientului". La fel cum menționează și numele, aceasta este o întreagă bibliotecă - versus o funcție - care oferă dezvoltatorilor un set complet de caracteristici pentru a face solicitări la distanță.

În plus față de a solicita pur și simplu date de la o adresă URL terță parte, puteți seta parametri, cum ar fi:

  • Cum să rezolvați numerele de eroare
  • Obțineți informații despre un anumit transfer
  • Inițiați, efectuați sau închideți o sesiune
  • Așteptați activitatea pentru o anumită conexiune
  • … și altele

Evident, există mult pentru a învăța și mult continuând cu această bibliotecă specială.

Personal, dacă sunteți un dezvoltator avansat, sunt un fan al utilizării răsuci în contextul aplicațiilor web bazate pe PHP pentru un nivel robust de control pe care îl oferă.

Dacă nu sunteți familiarizat cu această bibliotecă, vă recomandăm să citiți în manualul PHP.


Cum se fac cererile în WordPress?

Desigur, așa cum am menționat în tot articolul, file_get_contents și răsuci sunt importante pentru a cunoaște în PHP și sunt adesea folosite în contextul proiectelor WordPress; totuși, acolo este o funcție preferată de a utiliza în WordPress.

Amintiți-vă, la fel cum am analizat standardele de codificare WordPress pentru a înțelege cum să scrieți cel mai bine codul bazat pe WordPress, trebuie de asemenea să ne uităm la API-urile disponibile pentru a ne asigura că facem lucrurile așa cum recomandă WordPress.

Atunci când vine vorba de a face OBȚINE cererile pentru WordPress, funcția pe care o avem la dispoziție wp_remote_get.

Funcția acceptă două argumente:

  • Adresa URL la care se face solicitarea
  • Gama de argumente pentru a trimite împreună cu cererea

Gama de argumente este puțin dincolo de scopul acestui articol special; cu toate acestea, articolul Codex asociat oferă o citire rapidă pentru exact ceea ce putem trimite împreună cu cererea noastră.

Câteva exemple includ:

  • Cât de mult înainte de a ieși
  • Versiunea protocolului HTTP de folosit
  • Cap
  • fursecuri
  • … și altele

În cele din urmă, funcția va solicita o gamă completă de date odată ce răspunsul a fost trimis. De exemplu:

  • Anteturile de pe serverul la care a fost făcută solicitarea
  • Tipul de conținut al răspunsului
  • Răspunsul real
  • … și altele.

Vom vorbi mai mult despre răspunsul din cel de-al treilea articol din această serie.

Evident, funcția este cea mai ușoară pentru a înțelege, dar este foarte puternică. Pentru cei curioși, parte din API-ul WordPress HTTP (la care această funcție face parte) utilizează biblioteca cURL intern.


Să facem o cerere

Acestea fiind spuse, inițierea unei cereri cu wp_remote_get este foarte ușor. De fapt, vom face exact acest lucru în următorul articol din serie.

Mai precis, vom analiza modul în care este ușor să comunicați cu Twitter, să primiți date și apoi să îl afișați în browser. Cel mai frumos lucru este că nici nu trebuie să folosim nicio autentificare OAuth sau alte biblioteci.

Vom folosi wp_remote_get, gestionați răspunsul corespunzător, apoi afișați informațiile de pe ecran.

Cod