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:
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.
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.
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ă.
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:
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.
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:
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:
În cele din urmă, funcția va solicita o gamă completă de date odată ce răspunsul a fost trimis. De exemplu:
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.
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.