Een snelle handleiding voor de WordPress REST API

 Een snelle handleiding voor de WordPress REST API

Patrick Harvey

Het web is de laatste tien jaar behoorlijk gegroeid, en WordPress is steeds iets achterop geraakt. Steeds meer toepassingen worden met JavaScript op het web gebracht, en steeds meer dynamische websites worden gebouwd met talen als Python en Ruby.

De ontwikkelaars van WordPress core, en zelfs enkele professionele WordPress-ontwikkelaars, vinden dat de grote afhankelijkheid van WordPress van PHP en het minimale gebruik van JavaScript veel te verouderd is. Dit is iets wat de WordPress REST API moet oplossen.

Zie ook: 24 landingspagina-voorbeelden om u te inspireren en conversies te verhogen

Dit betekent niet dat WordPress afstapt van PHP, maar wel dat ontwikkelaars moeten overwegen JavaScript te leren als ze willen profiteren van wat deze API te bieden heeft.

Wat is de WordPress REST API?

De REST API is geen nieuw concept. In feite definieerde Roy Fielding de term "representational state transfer" in het jaar 2000 toen hij deze gebruikte voor het ontwerp van HTTP 1.1 en Uniform Resource Identifiers, beter bekend als "URI's".

U weet waarschijnlijk al dat API's de structuur zijn van softwaretoepassingen die reeksen hulpmiddelen en protocollen bevatten die ontwikkelaars kunnen gebruiken om die toepassingen te bouwen. REST API lijkt daarop, behalve dat het zijn verzoeken uitvoert en zijn antwoorden ontvangt via het HTTP-protocol.

Reguliere API's gebruiken meestal PHP, Python en Ruby om toepassingen te bouwen. U kunt ook andere talen gebruiken, maar deze zijn het populairst. REST API's maken het, door het gebruik van het HTTP-protocol, gemakkelijker om andere programmeertalen te gebruiken, zoals JavaScript.

WordPress REST API

Ik heb al uitgelegd hoe WordPress REST API meer gaat om WordPress dichter bij de rest van het web te brengen en minder om weg te gaan van PHP. Het gaat erom dat het voor ontwikkelaars gemakkelijker wordt om talen als JSON en JavaScript te gebruiken, zodat WordPress een volwaardig platform wordt waarmee veel meer kan worden gebouwd dan traditionele websites en blogs.

Hier is de uitleg van WordPress over het opnemen van JSON in de WordPress REST API:

De WordPress REST API biedt API endpoints voor WordPress datatypes waarmee ontwikkelaars op afstand kunnen communiceren met sites door JSON (JavaScript Object Notation) objecten te verzenden en te ontvangen. JSON is een open standaard gegevensformaat dat licht en menselijk leesbaar is, en eruitziet als Objecten in JavaScript; vandaar de naam. Wanneer u inhoud naar de API stuurt of een verzoek aan de API doet, zal het antwoordworden geretourneerd in JSON. Hierdoor kunnen ontwikkelaars WordPress-inhoud creëren, lezen en bijwerken vanuit client-side JavaScript of vanuit externe toepassingen, zelfs als deze zijn geschreven in andere talen dan PHP.

Het is in wezen ontworpen om de kloof te overbruggen tussen de PHP core waarop WordPress is gebouwd en de JavaScript die veel webapplicaties tegenwoordig gebruiken. De infrastructuur voor de WordPress REST API werd toegevoegd aan WordPress core in versie 4.4 (codenaam "Clifford") in december 2015. U had toen een plugin nodig om de REST API te gebruiken. De rest van deze API, de content endpoints om precies te zijn, werd echter toegevoegd aanWordPress core in versie 4.7 (codenaam "Vaughan") in december 2016, waardoor de WP REST API plugin niet meer nodig is.

Hoe de WordPress REST API werkt

Om te begrijpen hoe de WordPress REST API werkt, moet u begrijpen hoe HTTP verzoeken en reacties werken. Wanneer u een URL invoert in de adresbalk van een browser, is dat een verzoek. Wanneer de server de website of toepassing voor die URL weergeeft, is dat een antwoord.

Je zult een paar verschillende soorten verzoeken of "HTTP methoden" zien wanneer je de WordPress REST API gaat gebruiken. Hier zijn de vier belangrijkste soorten HTTP methoden die het web gebruikt:

  • GET - Gebruikt om gegevens van de server op te halen
  • POST - Gebruikt om gegevens naar de server te sturen
  • PUT - Gebruikt om gegevens op de server te wijzigen of bij te werken
  • DELETE - Gebruikt om gegevens van de server te verwijderen

Met deze eenvoudige definities in gedachten is het invoeren van een URL in een browser een GET-verzoek. Het invoeren van uw inloggegevens voor een website is een POST-verzoek. Het wijzigen van uw huidige wachtwoord in een nieuw wachtwoord is een PUT-verzoek, terwijl het beëindigen van uw account een DELETE-verzoek is.

Andere termen die u zult opmerken zijn "routes" en "endpoints". Een route is meestal de URL of een deel van de URL waartoe u toegang probeert te krijgen, terwijl een endpoint meestal het antwoord is dat u van de server ontvangt.

Zie ook: 6 Beste WordPress Thema Bouwers voor 2023

Wanneer externe bronnen HTTP-verzoeken sturen naar de server die uw WordPress site host, stelt de REST API uw gegevens op een veilige manier bloot door op die verzoeken te reageren met een gemeenschappelijke architectuur en een eigen set protocollen.

Hierdoor kan de inhoud van WordPress, zoals berichten, pagina's en commentaren, worden verwerkt als ruwe gegevens. We zullen hier zo meteen een glimp van opvangen. Het algemene punt hiervan is dat u wijzigingen kunt aanbrengen in de inhoud van uw site zonder dat u toegang hoeft te hebben tot het beheerdersgedeelte van WordPress. Op deze manier kunt u wijzigingen aanbrengen in uw site met behulp van JSON, waarvan de antwoorden ontwikkelaars een aantal verschillende manieren van interactie biedenmet hun sites.

Laten we onze handen een beetje vuil maken om te zien hoe dit allemaal werkt.

WordPress REST API gebruiken

We gaan kijken hoe je eigenlijk gebruik de WordPress REST API, maar helaas zijn er een paar sleutelconcepten die we eerst moeten doornemen zodat het allemaal duidelijk wordt. Hier zijn de sleutelconcepten waaruit deze API bestaat:

  • Routes en eindpunten
  • Verzoeken
  • Reacties
  • Schema
  • Regelaarsklassen

Laten we beginnen.

Routes en eindpunten

De technische definitie van een route is een URL die via verschillende HTTP-methoden kan worden gemapt. De mapping tussen een route en een HTTP-methode wordt een "endpoint" genoemd. U kunt toegang krijgen tot de WordPress REST API en zien welke routes en endpoints beschikbaar zijn voor uw site door de route "/wp-json/" toe te voegen aan het einde van uw URL.

U kunt dit zien op WordPress.org door te gaan naar //www.wordpress.org/wp-json/:

Installeer een extensie genaamd JSON Viewer voor Chrome (JSON viewer voor Firefox hier beschikbaar) om deze rommel op te ruimen:

Als je geen mooie permalinks gebruikt, gebruik dan "?rest_route=" in plaats van "wp-json". Hoe dan ook, wat je hier ziet is een voorbeeld van een route en een eindpunt. "/wp-json/" en "/?rest_route=/" zijn routes. Ze geven je toegang tot de WordPress REST API via de GET HTTP methode. De WordPress REST API die je te zien krijgt, of de data zo je wilt, is een eindpunt dat ons wordt aangeboden via een JSON antwoord.

Verzoeken

De WordPress REST API verwerkt verzoeken met een klasse genaamd WP_REST_Request. Het is een primaire klasse in de WordPress REST API infrastructuur. Het wordt gebruikt om informatie op te slaan en op te halen voor alle verzoeken die je doet.

U kunt verzoeken op afstand versturen met de HTTP-methoden die we hebben besproken, of u kunt ze intern doen zoals u normaal zou doen via PHP.

Reacties

Reacties worden verwerkt met de klasse WP_REST_Response. Een reactie is de gegevens die u ontvangt van een verzoek, zoals eerder vermeld. De API gebruikt deze klasse om gegevens terug te sturen die zijn verzonden vanaf eindpunten. Het kan ook fouten terugsturen.

Schema

Schema is een concept binnen de WordPress REST API dat verschillende doelen dient. API schema definieert de datastructuren die eindpunten kunnen gebruiken, en het bevat een lijst van de eigenschappen die de WordPress REST API kan retourneren. Het bevat ook de parameters die de API kan accepteren en zorgt voor de beveiliging ervan door de verzoeken die de API ontvangt te valideren.

Regelaarsklassen

De WordPress REST API registreert routes en eindpunten, handelt verzoeken af, gebruikt Schema om de gegevens en eigenschappen te definiëren die het kan gebruiken, en genereert API antwoorden bovenop dat alles. De API, en jij als ontwikkelaar, heeft een manier nodig om al deze bewegende delen te beheren. Daar zijn controller klassen voor. Ze laten je toe om al deze elementen te verzamelen en ze op één plaats te organiseren.

De WordPress REST API gebruiken om via eindpunten toegang te krijgen tot uw inhoud

Een route is de URL die u gebruikt om een eindpunt te benaderen, en een eindpunt is het antwoord dat u van de server ontvangt. Als u de berichten van uw site via de WordPress REST API wilt verkrijgen, gebruikt u de route "/wp/v2/posts/". WordPress legt uit dat "/wp-json/" niet in deze langere routes is opgenomen omdat het het "basispad voor de API zelf" is. De eind-URL is "example.com/wp-json/wp/v2/posts".

Als u via de API toegang wilt tot een specifieke post, voegt u gewoon de ID van de post toe aan het einde van de URL, zodat het er zo uitziet: "example.com/wp-json/wp/v2/posts/123".

Als u wilt zoeken naar berichten die een specifieke zin of trefwoord gebruiken, gebruik dan deze route: "/wp/v2/posts?=search[ vul hier een trefwoord in ]" zodat de URL er als volgt uitziet: "example.com/wp-json/wp/v2/posts?search[ vul hier een trefwoord in ].

Als je het profiel van een specifieke gebruiker via de API wilt benaderen, voeg je "/users/" toe aan de route, evenals de gebruikers-ID van die gebruiker. De URL ziet er dan als volgt uit: "example.com/wp-json/wp/v2/users/2". Evenzo, als je de gebruikers van een site wilt benaderen, laat je de ID vallen zodat de URL er als volgt uitziet: "example.com/wp-json/wp/v2/users/".

U kunt hier meer eindpunten bekijken.

De REST API uitbreiden

We gaan een paar stappen overslaan en leren hoe je de eigenschappen van de REST API kunt gebruiken om hem uit te breiden. Je zou meer moeten leren over zaken als globale parameters, paginering, linken en insluiten, en authenticatie voordat je dit doet, maar we slaan het over voor het doel van deze snelstartgids.

Hier zijn een paar dingen die u kunt bereiken door de REST API uit te breiden:

  • Aangepaste eindpunten toevoegen
  • Routes maken voor aangepaste posttypes en aangepaste taxonomieën
  • Reacties wijzigen

Als u een ervaren ontwikkelaar bent, bent u waarschijnlijk al bekend met de concepten die nodig zijn om een aangepast eindpunt toe te voegen aan de REST API. Het is gewoon een kwestie van leren hoe de twee te verbinden.

U begint met het maken van een functie die eenvoudig of ingewikkeld kan zijn, afhankelijk van de geavanceerdheid van de functionaliteit die u probeert toe te voegen aan de REST API. Hier is de eenvoudige functie die WordPress biedt in hun handboek, een functie ontworpen om de titels van de laatste berichten van uw site op te halen per auteur:

 $data['id'], ) ); if ( empty( $posts ) ) { return null; } return $posts[0]->post_title; } 

Daarna moet je een route registreren om deze functie beschikbaar te maken voor de API door een andere functie te gebruiken die register_rest_route heet. Hier is de functie die WordPress gebruikt om de route voor de vorige functie te registreren:

 php add_action( 'rest_api_init', function () { register_rest_route( 'myplugin/v1', '/author/(?P\d+)', array( 'methods' = 'GET', 'callback' => 'my_awesome_func', ) ); } ); 

Er gebeuren hier een paar dingen. Ten eerste zijn er drie eigenschappen die door deze functie gaan. Dat zijn de namespace ("myplugin/v1"), de route die we moeten registreren ("my_awesome_func") en de opties die we willen gebruiken ("author/(?P\d+)"). De register_rest_route functie wordt ook aangeroepen op een callback functie genaamd "rest_api_init". Dit vermindert de hoeveelheid onnodig werkdie wordt uitgevoerd wanneer de API niet wordt gebruikt.

Zoals WordPress uitlegt, is deze route ontworpen om alles te matchen met "/author/{id}" waarbij "{id}" een geheel getal is. Dit is de URL die je zou bezoeken om deze route te gebruiken - //voorbeeld.com/wp-json/myplugin/v1/author/(?P\d+) Deze specifieke route gebruikt één eindpunt, maar routes kunnen meerdere eindpunten hebben. Je kunt zien dat we ook de HTTP-methode hebben gedefinieerd die dit eindpunt zou gebruiken.

Andere concepten die je nodig hebt

Er zijn een paar extra concepten die je moet leren als je de REST API wilt uitbreiden, als je er nog niet bekend mee bent. We hebben een namespace gebruikt in de functie hierboven, daarom is het eerste deel van de URL hierboven "myplugin/v1". Ze worden gebruikt als voorvoegsels om botsingen met aangepaste routes te voorkomen.

Argumenten zijn een ander concept waarmee je vertrouwd moet zijn, omdat ze je in staat stellen sanitization en validatie uit te voeren door ze te registreren wanneer je routes registreert. Je moet je ook vertrouwd maken met return values, omdat dit is wat je zult gebruiken om het type antwoord dat je van de server ontvangt te definiëren. Je kunt ze zelfs gebruiken om fouten te retourneren, zoals een 404 error die wordt weergegeven als een auteur nietberichten gepubliceerd.

Callbacks zijn een ander concept dat u moet kennen, zoals functies die bekend staan als permissie callbacks die controleren of een gebruiker al dan niet een actie kan uitvoeren voordat de functie de eigenlijke callback probeert aan te roepen. Ten slotte zal het vertrouwd raken met interne klassen en controllerpatronen u helpen bij het beheren van elk aspect van de eindpunten die u maakt.

Laatste gedachten & hoe nu verder?

Het begrijpen van de belangrijkste concepten van de WordPress REST API en het leren gebruiken en uitbreiden ervan kan overweldigend zijn, maar de makers van WordPress zijn er vrij zeker van dat het de kracht zal zijn die het CMS nodig heeft om veel verder te groeien dan zijn mogelijkheden als platform om eenvoudige websites en blogs te bouwen.

Zoals gezegd zou het leren van JavaScript nu een topprioriteit moeten zijn, omdat dit de taal is die de makers van WordPress willen dat ontwikkelaars vaker in WordPress-projecten verwerken.

Je zou ook het WordPress REST API handboek moeten doornemen om een beter begrip te krijgen van de manier waarop WordPress de REST API gebruikt. De sectie Gebruik van de REST API bevat gidsen over het gebruik van globale parameters, paginering, insluiten en linken, en authenticatie, allemaal belangrijke concepten van deze API.

Als je dat allemaal goed begrepen hebt, kun je de sectie Uitbreiding van de REST API doorlopen om te leren hoe je de API diepgaand kunt uitbreiden. Je leert meer over het toevoegen van aangepaste eindpunten en je leert ook hoe je aangepaste inhoudstypen kunt gebruiken en reacties kunt wijzigen.

Patrick Harvey

Patrick Harvey is een doorgewinterde schrijver en digitale marketeer met meer dan 10 jaar ervaring in de branche. Hij heeft een enorme kennis van verschillende onderwerpen, zoals bloggen, sociale media, e-commerce en WordPress. Zijn passie voor schrijven en het helpen van mensen om online succesvol te zijn, heeft hem ertoe aangezet om inzichtelijke en boeiende posts te maken die waarde toevoegen aan zijn publiek. Als ervaren WordPress-gebruiker is Patrick bekend met de ins en outs van het bouwen van succesvolle websites, en hij gebruikt deze kennis om zowel bedrijven als particulieren te helpen hun online aanwezigheid te vestigen. Met een scherp oog voor detail en een niet aflatende toewijding aan uitmuntendheid, is Patrick toegewijd om zijn lezers te voorzien van de nieuwste trends en advies in de digitale marketingindustrie. Als hij niet aan het bloggen is, is Patrick te vinden op het verkennen van nieuwe plaatsen, het lezen van boeken of het spelen van basketbal.