Når det gjelder å gjøre eksterne forespørsler innenfor rammen av nettsider, webapplikasjoner og til og med WordPress-baserte prosjekter, er modellen vi følger vanligvis det samme:
Dette bestemte formatet er det samme som brukes i både synkron og asynkron (eller Ajax-basert) funksjonalitet. Saken er, hvis du bygger et standard webprogram ved hjelp av PHP, Rails, Java, .NET eller en hvilken som helst annen plattform, så har de hver sin måte å gjøre det på..
Det samme gjelder for WordPress; Men hvis du jobber med WordPress, jobber du også med PHP, noe som betyr at du kan utnytte PHP-funksjoner i stedet for bestemte WordPress API-er.
I denne fire delserien skal vi se på hva det betyr å lage en fjernkontroll FÅ
forespørsel, og i den andre delen skal vi ta en titt på en praktisk tilnærming til å gjøre det.
Så i de to siste artiklene skal vi se på argumentene som wp_remote_get
aksepterer så vel som hva du kan akseptere fra et svar fra serveren når en forespørsel er fullført. Til slutt bør vi ha en full forståelse av API-metoden for denne metoden, samt hvordan du skriver kvalitet og defensiv kode når du implementerer den i våre prosjekter.
Men først, la oss ta en oversikt over hva det til og med betyr å gjøre en forespørsel.
Enkelt definert, en ekstern forespørsel er når en server gjør en forespørsel til en annen server. Dette kan ta flere former - noen ganger sender den data, noen ganger er det bare polling for å se om serveren er tilgjengelig, og noen ganger ber det om data.
I denne spesielle serien av artikler skal vi se på hva det betyr å be om data fra en annen server. Men først, hvordan kan du konseptuelt modellere en server til å snakke med en annen, lage en forespørsel, og deretter håndtere dataene:
Lett nok å forstå, riktig?
For de avanserte utviklerne som leser dette, vet du at det kan være noen avanserte emner som dekker her - kanskje autentisering må oppstå (for eksempel bruk av nøkler og / eller tokens), og du vet at svaret ikke alltid vil være så tydelig kuttet som det som er definert - men sannheten er at hvis du ser på prosessen fra et abstrakt synspunkt, er dette det du ender med å se.
Dette varierer fra søknad til applikasjon, men som tidligere nevnt i denne artikkelen er vi primært fokusert på PHP og WordPress, og slik måten som forespørsler vanligvis gjøres innen PHP, bruker en av to funksjoner:
file_get_contents
curl
Begge kan brukes til eksterne forespørsler, men en er litt mer fleksibel enn den andre.
file_get_contents
I bunn og grunn, file_get_contents
aksepterer en streng - i utgangspunktet en URL - og returnerer dataene som er forespurt (eller feil på feil).
Dette er uten tvil den vanligste måten at nybegynnerutviklere vil gjøre eksterne forespørsler. Sannheten blir fortalt, jeg pleide å gjøre dette mye - og fortsatt gjør, avhengig av kravene til webapplikasjonen - men det er et emne for en annen serie.
Detaljer om file_get_contents
kan leses i PHP manualen. Selv om vi skal ta en titt på WordPress-måten å gjøre eksterne forespørsler, anbefaler jeg at du sjekker ut denne APIen bare for å være kjent med hva den tilbyr.
cURL - ofte skrevet krøll - er kort for "klientens URL-bibliotek". Akkurat som navnet nevner, er dette et helt bibliotek - i motsetning til en funksjon - som gir utviklere et komplett sett med funksjoner for å gjøre eksterne forespørsler.
I tillegg til å bare be om data fra en tredjeparts URL, kan du angi parametere som:
Det er åpenbart at det er mye å lære og mye fortsetter med dette bestemte biblioteket.
Personlig, hvis du er en avansert utvikler, er jeg fan av å bruke cURL
i sammenheng med PHP-baserte webapplikasjoner for det robuste kontrollnivået som det tilbyr.
Hvis du ikke er kjent med dette biblioteket, anbefaler jeg at du leser det i PHP-håndboken.
Selvfølgelig, som nevnt i hele artikkelen, file_get_contents
og cURL
er viktig å vite i PHP og brukes ofte i forbindelse med WordPress-prosjekter; imidlertid der er en foretrukket funksjon som skal brukes innen WordPress.
Husk, akkurat som vi har sett på WordPress Coding Standards for å forstå hvordan du best skriver WordPress-basert kode, må vi også se på APIene som er tilgjengelige for oss, for å sikre at vi gjør ting slik WordPress anbefaler.
Så når det gjelder å lage FÅ
forespørsler om WordPress, funksjonen som vi har tilgjengelig for oss er wp_remote_get
.
Funksjonen godtar to argumenter:
Utvalget av argumenter er litt utenfor omfanget av denne spesielle artikkelen; Den tilhørende Codex-artikkelen gir imidlertid en rask lesning for nøyaktig hva vi kan sende sammen med vår forespørsel.
Noen eksempler inkluderer:
Endelig vil funksjonen be om en hel rekke data når svaret er sendt. For eksempel:
Vi snakker mer om svaret i den tredje artikkelen i denne serien.
Åpenbart er funksjonen enklest nok å forstå, men det er veldig kraftig. For de som er nysgjerrige, bruker en del av WordPress HTTP API (som denne funksjonen er en del av) kURL-biblioteket internt.
Når det er sagt, starter en forespørsel med wp_remote_get
er veldig enkelt. Faktisk skal vi bare gjøre det i neste artikkel i serien.
Spesielt skal vi se på hvor enkelt det er å kommunisere med Twitter, motta data, og deretter vise det i nettleseren. Det fine er at vi ikke engang må bruke OAuth-autentisering eller andre biblioteker.
Vi skal bruke wp_remote_get
, Behandle svaret på riktig måte, og deretter vise informasjonen på skjermen.