Als het gaat om het maken van externe aanvragen in de context van websites, webapplicaties en zelfs op WordPress gebaseerde projecten, is het model dat we volgen over het algemeen hetzelfde:
Dit specifieke formaat is hetzelfde dat wordt gebruikt in zowel synchrone als asynchrone (of Ajax-gebaseerde) functionaliteit. Het probleem is dat als je een standaard webtoepassing bouwt met PHP, Rails, Java, .NET of een ander platform, ze elk hun eigen manier hebben om het te doen.
Hetzelfde geldt voor WordPress; Als u echter met WordPress werkt, werkt u ook met PHP, wat betekent dat u mogelijk PHP-functies gebruikt in plaats van specifieke WordPress-API's.
In deze vierdelige serie gaan we kijken wat het betekent om een afstandsbediening te maken KRIJGEN
verzoek, en in het tweede deel gaan we kijken naar een praktische benadering om dit te doen.
Dan in de laatste twee artikelen, gaan we kijken naar de argumenten die wp_remote_get
aanvaardt evengoed als wat u kunt accepteren van een reactie van de server wanneer een aanvraag is voltooid. Uiteindelijk moeten we een volledig begrip hebben van de API van deze methode en ook hoe we kwaliteit en defensieve code moeten schrijven wanneer we deze in onze projecten implementeren..
Maar laten we eerst een overzicht maken van wat het betekent om een verzoek in te dienen.
Eenvoudig gedefinieerd, een verzoek op afstand is wanneer een server een aanvraag doet bij een andere server. Dit kan verschillende vormen aannemen - soms verzendt het gegevens, soms is het eenvoudig polling om te zien of de server beschikbaar is en soms vraagt het data.
In deze specifieke reeks artikelen gaan we kijken naar wat het betekent verzoek gegevens van een andere server. Maar eerst, hier is hoe u een server conceptueel kunt modelleren om met een ander te praten, een aanvraag te doen en de gegevens vervolgens te verwerken:
Makkelijk genoeg om te begrijpen, goed?
Voor de gevorderde ontwikkelaars die dit lezen, weet je dat hier een aantal geavanceerde onderwerpen kunnen worden behandeld - misschien moet er verificatie plaatsvinden (zoals het gebruik van sleutels en / of tokens), en je weet dat de reactie niet altijd zal plaatsvinden zo duidelijk zijn als wat wordt gedefinieerd - maar de waarheid is dat als je het proces vanuit een abstract gezichtspunt bekijkt, dit is wat je uiteindelijk ziet.
Dit verschilt van applicatie tot applicatie, maar zoals eerder in dit artikel vermeld, zijn we voornamelijk gefocust op PHP en WordPress en dus maakt de manier waarop verzoeken doorgaans binnen PHP worden gedaan gebruik van een van de twee functies:
file_get_contents
Krul
Beide kunnen worden gebruikt voor verzoeken op afstand, maar de ene is wat flexibeler dan de andere.
file_get_contents
In wezen, file_get_contents
accepteert een string - in feite een URL - en zal de gevraagde gegevens retourneren (of fout bij een fout).
Dit is misschien wel de meest gebruikelijke manier waarop beginnende ontwikkelaars externe verzoeken zullen doen. Eerlijk gezegd deed ik dit vaak - en nog steeds, afhankelijk van de vereisten van de webapplicatie - maar dat is een onderwerp voor een andere reeks.
De details over file_get_contents
kan worden gelezen in de PHP-handleiding. Hoewel we de WordPress-manier bekijken om externe verzoeken te doen, raad ik aan om deze specifieke API te bekijken, gewoon om bekend te zijn met wat het biedt.
cURL - vaak geschreven curl - is een afkorting van de 'client URL-bibliotheek'. Net zoals de naam vermeldt, is dit een hele bibliotheek - versus een functie - die ontwikkelaars een volledige reeks functies biedt voor het maken van verzoeken op afstand.
Naast het eenvoudig opvragen van gegevens van een externe URL, kunt u parameters instellen zoals:
Uiteraard is dat zo veel om te leren en veel doorgaan met deze specifieke bibliotheek.
Persoonlijk ben ik een fan van het gebruik als je een geavanceerde ontwikkelaar bent Krul
in de context van PHP-gebaseerde webapplicaties voor het robuuste niveau van controle dat het biedt.
Als u niet bekend bent met deze bibliotheek, raad ik u aan deze in de PHP-handleiding te lezen.
Natuurlijk, zoals vermeld in het artikel, file_get_contents
en Krul
zijn belangrijk om te weten in PHP en worden vaak gebruikt in de context van WordPress-projecten; echter, daar is een voorkeursfunctie om te gebruiken in WordPress.
Vergeet niet dat, net zoals we naar de coderingsstandaarden van WordPress hebben gekeken om te begrijpen hoe we het best op WordPress gebaseerde code kunnen schrijven, we ook naar de beschikbare API's moeten kijken om ervoor te zorgen dat we dingen doen zoals WordPress aanbeveelt.
Dus als het gaat om maken KRIJGEN
verzoeken voor WordPress, de functie die we beschikbaar hebben voor ons is wp_remote_get
.
De functie accepteert twee argumenten:
De reeks argumenten valt een beetje buiten het bereik van dit specifieke artikel; Het bijbehorende Codex-artikel biedt echter een korte samenvatting van wat we precies met ons verzoek kunnen verzenden.
Enkele voorbeelden zijn:
Ten slotte vraagt de functie om een volledige array van gegevens zodra het antwoord is verzonden. Bijvoorbeeld:
We zullen meer praten over de reactie in het derde artikel in deze serie.
Het is duidelijk dat de functie het gemakkelijkst te begrijpen is, maar het is echt krachtig. Voor degenen die nieuwsgierig zijn, maakt een deel van de WordPress HTTP API (waar deze functie deel van uitmaakt) de cURL-bibliotheek intern aan.
Dat gezegd hebbende, het initiëren van een verzoek bij wp_remote_get
is echt gemakkelijk. In feite gaan we precies dat doen in het volgende artikel in de serie.
Concreet gaan we kijken hoe eenvoudig het is om te communiceren met Twitter, gegevens te ontvangen en deze vervolgens in de browser weer te geven. Het leuke is dat we zelfs geen OAuth-authenticatie of andere bibliotheken hoeven te gebruiken.
We zullen gebruiken wp_remote_get
, behandel het antwoord op de juiste manier en geef de informatie vervolgens weer op het scherm.