WordPress REST API Gids: Begrijpen hoe het op te zetten en te gebruiken in 2024
WordPress REST API is een interface waarmee het content management systeem (CMS) gegevens kan uitwisselen met diensten van derden. Hiermee kun je content direct vanuit de database benaderen, wat resulteert in een naadloze integratie.
REST API’s worden onder andere gebruikt om een aangepaste toepassing te ontwikkelen die gebruik maakt van de gegevens of functionaliteit van het CMS. Je kunt bijvoorbeeld een headless WordPress opzetten om een website te maken gebaseerd op een modern framework zoals React bovenop het admin dashboard.
In deze WordPress REST API tutorial leggen we uit hoe deze tool werkt en hoe je hem kunt gebruiken. Je leert ook veelvoorkomende gebruiksvoorbeelden en best practices om efficiënte ontwikkeling te garanderen.
Wat is WordPress REST API?
WordPress REST API is een interface waarmee je het CMS kunt integreren met andere toepassingen van derden. Hiermee kun je software of websites ontwikkelen die gebruik maken van de gegevens, functionaliteit en inhoud van WordPress, zonder dat je hier direct toegang toe hoeft te hebben.
WordPress REST API biedt eindpunten voor het ophalen en manipuleren van inhoud als JSON gegevens om compatibiliteit te garanderen, ongeacht de programmeertalen.
Hoe WordPress REST API werkt
Een Application Programming Interface (API) biedt een verzameling regels waarmee twee webservices met elkaar kunnen communiceren. Ondertussen staat REST voor Representational State Transfer, een architectuurstandaard die dergelijke communicatie definieert.
Een webapplicatie die de REST-principes volgt, wordt beschouwd als RESTful. Het moet bijvoorbeeld een uniforme interface gebruiken, die een enkel toegangspunt biedt om andere applicaties toegang te geven tot zijn gegevens.
Om data uit te wisselen, stuurt de REST API een verzoek naar de WordPress database, wat een set instructies is met informatie die je applicatie nodig heeft. In ruil daarvoor stuurt het een antwoord met de inhoud en een bevestiging of het proces succesvol is verlopen.
Je applicatie of client gebruikt routes om te bepalen welke gegevens moeten worden opgehaald. Dit zijn URL’s die specifieke inhoud vinden via de WP REST API, zoals WordPress berichten of metadata. Het volgende geeft je bijvoorbeeld toegang tot pagina’s:
http://domain.tld/wp-json/wp/v2/pages
Deze routes geven toegang tot de eindpuntfuncties in WP REST API die de gevraagde gegevens manipuleren. Je kunt de gegevens ophalen, toevoegen, bewerken of verwijderen, afhankelijk van de HTTP-methoden (Hypertext Transfer Protocol):
- GET – haalt gegevens op van de server.
- POST – voegt nieuwe gegevens toe aan de database.
- PUT – wijzigt bestaande gegevens.
- DELETE – verwijdert inhoud uit de database.
Alle opgehaalde gegevens worden weergegeven in JSON-indeling, wat betekent dat je ze moet parsen voordat je ze doorgeeft aan een andere code.
Je omgeving instellen voor WordPress REST API
De REST API functionaliteit is standaard ingeschakeld in de WordPress installatie. Ga na het kopen van een WordPress hostingplan en het instellen van het CMS naar de volgende link om te controleren of de REST API is ingeschakeld:
http://domain.tld/wp-json/
Vergeet niet om domain.tld te vervangen door het adres van je eigen website. Als je een lijst met eindpunten ziet, dan is de WordPress REST API actief. Merk op dat deze functie alleen beschikbaar is voor WordPress 4.7 of hoger.
Tip van een expert
We raden aan om een lokale testomgeving op te zetten voor je WordPress ontwikkelactiviteiten om mogelijke misconfiguraties of ongewenste fouten te voorkomen die de beschikbaarheid van de website of de gebruikerservaring kunnen beïnvloeden.
Installeer nu het hulpprogramma cURL in de opdrachtregelinterface (CLI) van je lokale machine, zoals Command Prompt of Terminal. Hiermee kun je verzoeken verzenden naar en ontvangen van de WordPress server om te testen.
Installeer vervolgens de WordPress REST API Basic Auth handler om je verificatiemethode te configureren. Hiermee krijg je toegang tot privégegevens waarvoor je beheerdersrechten nodig hebt.
Na het installeren van de plugin kunnen we beginnen met het versturen van HTTP verzoeken via WordPress REST API. Open hiervoor WP-CLI en maak verbinding met je site via SSH. Hostinger gebruikers kunnen de referenties vinden door naar hPanel → Websitebeheer → Geavanceerd → SSH Toegang te gaan.
Laten we proberen toegang te krijgen tot beperkte gegevens om te controleren of de authenticatie van de WP REST API goed werkt.
We voeren bijvoorbeeld de volgende prompt uit in de opdrachtregeltoepassing van het lokale systeem om ongepubliceerde berichten op te halen:
curl -X GET --user username:password -i http://domain.tld/wp-json/wp/v2/posts?status=draft
Hoe WordPress REST API gebruiken
Na het instellen van je hosting en testomgeving, kunnen we beginnen met het gebruik van WordPress REST API. Hier zijn enkele alledaagse gebruikssituaties:
Belangrijk! Zorg ervoor dat je de API-aanroepmethoden en het JSON-formaat begrijpt voordat je verder gaat, zodat je de ruwe gegevens veel sneller kunt interpreteren.
1. Gegevens ophalen met GET-verzoeken
Gebruik de GET methode om gegevens op te halen van je WordPress website via JSON REST API. We halen bijvoorbeeld inhoud op van het eindpunt Berichten:
GET http://domain.tld/wp-json/wp/v2/posts/
Dit API verzoek zal alle berichten van je WordPress site afdrukken, inclusief details zoals ID, inhoud en titel. Als je het uitvoert met cURL, zou de uitvoer er uit moeten zien zoals hieronder.
Je kunt ook pagina’s ophalen met het bijbehorende eindpunt:
GET http://domain.tld/wp-json/wp/v2/pages/
De uitvoer is vergelijkbaar, maar het commando haalt alle pagina’s op in plaats van berichten. Je kunt ook aangepaste posttypes opvragen door hun naam op te geven in het eindpunt:
GET http://domain.tld/wp-json/wp/v2/custom-post-type/
Gebruik bijvoorbeeld de volgende prompt om aangepaste berichten voor productpagina’s op te halen:
GET http://domain.tld/wp-json/wp/v2/product-page
Belangrijk! Vergeet niet om cURL te gebruiken om REST API requests te testen via WP-CLI. Gebruik in plaats daarvan functies of bibliotheken zoals JavaScript’s Fetch voor de eigenlijke applicatiecode.
Je kunt een query parameter gebruiken om de uitvoer aan te passen, zoals het pagineren of sorteren van de gegevens. Gebruik bijvoorbeeld het volgende endpoint om berichten te rangschikken op basis van hun aanmaakdatum in oplopende volgorde:
/wp-json/wp/v2/posts?orderby=date&order=desc
Gebruik ondertussen pagina en per_pagina query parameters om een specifiek aantal berichten van een bepaalde pagina op te halen. Hier is een voorbeeld:
/wp-json/wp/v2/posts?page=2&per_page=10
Met behulp van het eindpunt zal de GET-methode berichten groeperen in meerdere pagina’s, die elk 10 items bevatten, en de tweede pagina ophalen.
WordPress biedt verschillende andere query parameters om gegevens te filteren op basis van specifieke criteria. Om hier meer over te weten te komen, lees de documentatie over posts REST API referenties.
2. Inhoud maken met POST-verzoeken
Met de POST methode kun je nieuwe inhoud toevoegen aan de WordPress database door gebruik te maken van een bepaald eindpunt. Gebruik bijvoorbeeld de volgende prompt om een lege post te maken:
POST http://domain.tld/wp-json/wp/v2/posts/
Je kunt ook nieuwe pagina’s of aangepaste berichtvermeldingen maken met behulp van hun respectievelijke WordPress REST API-eindpunten zoals dit:
POST http://domain.tld/wp-json/wp/v2/pages/
POST http://domain.tld/wp-json/wp/v2/custom-post-types/
Om een eigen bericht te maken met een titel, publicatiestatus en inhoud, moet je deze details specificeren in de code van je applicatie.
Bovendien vereist het WordPress REST API POST verzoek gewoonlijk beheerdersrechten. Als je authenticatie methoden zoals open authenticatie (OAuth) gebruikt, zorg er dan voor dat je het verificatie token toevoegt.
Je moet ook respons validatie toevoegen, zodat je applicatie kan bevestigen of het POST API verzoek succesvol is.
3. Inhoud bijwerken en verwijderen
Met de WordPress REST API PUT-methode kun je een specifieke post, pagina of aangepast bericht wijzigen met behulp van de bijbehorende ID. Je kunt bijvoorbeeld nieuwe inhoud invoegen of de publicatiestatus wijzigen.
De syntaxis is vergelijkbaar met andere API-aanroepmethoden, maar heeft de bericht-ID aan het einde van de route:
PUT http://domain.tld/wp-json/wp/v2/posts/ID
Specificeer vervolgens de gegevens die je wilt wijzigen. Om bijvoorbeeld nieuwe inhoud in te voegen, voeg je de volgende regel toe:
{
"content" = "publish"
}
Voor het verwijderen van berichten, pagina’s of aangepaste vermeldingen voor berichten wordt ook hun ID gebruikt, zoals in het onderstaande voorbeeld:
DELETE http://domain.tld/wp-json/wp/v2/posts/ID
Standaard verplaatst de methode DELETE gegevens naar de prullenbak, zodat je ze later kunt herstellen als dat nodig is. Voor permanente verwijdering voeg je de parameter forceren als volgt toe:
DELETE http://domain.tld/wp-json/wp/v2/posts/567?force=true
Waarschuwing! We raden aan om het argument forceren indien mogelijk te vermijden, omdat het per ongeluk gegevensverlies kan veroorzaken.
4. Werken met aangepaste eindpunten
WordPress REST API biedt verschillende standaard eindpunten met voorgedefinieerde functionaliteiten. Deze kunnen echter ontoereikend zijn als je applicatie specifieke gegevens nodig heeft.
Hoewel je de uitvoer van standaard endpoints kunt aanpassen met behulp van filters of query parameters, is dit proces ineffectief vanwege extra code. Bovendien kan het moeilijk zijn om extra inhoud op te halen, zoals formulierinzendingen.
Om de toegang tot gegevens voor bepaalde behoeften te vereenvoudigen, kun je aangepaste eindpunten maken in WordPress. Je kunt dit doen door de functions.php van je thema aan te passen via de thema bestandseditor of door een aangepaste WordPress plugin te maken.
Voeg het volgende codefragment toe om een aangepast eindpunt te registreren, inclusief de route, callback-functie en query-methode:
add_action( 'rest_api_init', function () {
register_rest_route( 'your_namespace/v1', '/your_endpoint/', array(
'methods' => 'GET',
'callback' => 'your_endpoint_callback',
) );
} );
Specificeer vervolgens de callback-functie die moet worden geactiveerd wanneer het eindpunt wordt benaderd. Deze zal de gegevensmanipulatie afhandelen en het gevraagde antwoord retourneren.
function your_endpoint_callback( $data ) {
// Your logic to handle the request like returning a JSON response
return array( 'message' => 'Your custom endpoint works!' );
}
Bijvoorbeeld, je WordPress site heeft formulieren waarvan de inzendingen worden geregistreerd als aangepaste berichten. Je kunt een aangepast eindpunt maken waarmee je de inzendingen kunt ophalen door het volgende codefragment toe te voegen:
add_action( 'rest_api_init', function () {
register_rest_route( 'custom/v1', '/form-submissions', array(
'methods' => 'GET',
'callback' => 'get_form_submissions',
) );
} );
function get_form_submissions() {
$args = array(
'post_type' => 'form_submission',
'posts_per_page' => -1,
);
$form_submissions = get_posts( $args );
$response = array();
foreach ( $form_submissions as $submission ) {
$response[] = array(
'id' => $submission->ID,
'title' => $submission->post_title,
'content' => $submission->post_content,
'author' => $submission->post_author,
'created_at' => $submission->post_date,
// Add more fields as needed
);
}
return $response;
}
De get_posts functie itereert de inzendingen, die je vervolgens kunt openen met de GET methode:
GET http://domain.tld/wp-json/custom/v1/form-submissions
5. Authenticatie selecteren
WordPress REST API authenticatie zorgt voor een veilige gegevensoverdracht met geldige clients. Afhankelijk van de vereisten van hun toepassing kunnen gebruikers verschillende mechanismen implementeren.
WordPress gebruikt standaard cookie authenticatie. Aangemelde gebruikers krijgen authenticatiecookies toegewezen, die worden opgenomen in de verzoekheader voor volgende API-aanroepen. Deze methode is eenvoudig, maar ongeschikt voor webservices van derden die authenticatie buiten WordPress vereisen.
Een andere methode is OAuth, die een authenticatietoken gebruikt om verzoeken van je webservice te valideren. Omdat het geen gebruik maakt van gebruikersgegevens, biedt het meer flexibiliteit en betrouwbaarheid. Het installatieproces kan voor sommigen echter ingewikkeld zijn.
Om OAuth te configureren, gebruik je de officiële plugin van de WordPress REST API GitHub repository. We raden ook OAuth 2.0 aan, omdat deze eenvoudiger te implementeren is, beter schaalbaar is en een nieuwere architectuur gebruikt dan versie 1.0.
WordPress REST API voorbeelden
WordPress REST API is handig voor verschillende webontwikkeltaken en -toepassingen. Je kunt bijvoorbeeld berichten ophalen uit het CMS en deze weergeven op andere websites voor het distribueren van inhoud.
Een andere toepassing is het verzenden van gegevens van een bestaande statische site naar de WordPress backend. Dit vereenvoudigt het ontwikkelingsproces omdat je gebruik kunt maken van de mogelijkheden van het CMS om de gegevens op te slaan in plaats van handmatig een database te configureren.
WordPress API integratie maakt het ook mogelijk om de inhoud van je site automatisch bij te werken. Zo kun je bijvoorbeeld berichten van Apple News naar je website pushen met de PUT methode zonder in te loggen.
Een meer geavanceerd gebruik van REST API is het maken van een headless CMS. Je kunt bijvoorbeeld nieuwsgerichte mobiele apps maken die het WordPress-dashboard gebruiken voor inhoudsbeheer.
Echte API-toepassingen zijn onder andere het ophalen van specifieke berichtgegevens uit de database voor de blok-editor. Een ander voorbeeld is het weergeven van Google Maps op WordPress sites met behulp van plugins.
Best Practices voor het gebruik van de WordPress REST API
Overweeg de volgende best practices om de WordPress REST API functie efficiënt te gebruiken voor webontwikkeling en -integratie.
Zorg voor de juiste authenticatie
Het instellen van de juiste authenticatie verbetert de beveiliging van WordPress REST API en zorgt ervoor dat alleen geautoriseerde gebruikers of applicaties toegang hebben tot gevoelige gegevens.
Het helpt kwetsbaarheden in de beveiliging te minimaliseren en voorkomt ongeautoriseerde toegang en datalekken. Om de beste methode te kiezen, moet je rekening houden met de schaalbaarheid, het gemak van implementatie en je vereisten.
Invoer zuiveren
Het opschonen van invoer in WordPress REST API is belangrijk, vooral als je werkt met openbare gegevens waar alle gebruikers toegang toe hebben. Dit houdt in het valideren en opschonen van invoer van externe bronnen om te voorkomen dat kwaadaardige code het CMS infiltreert.
Het helpt ook om je WordPress te beschermen tegen beveiligingsproblemen zoals SQL injectie en cross-site scripting (XSS).
WordPress biedt ingebouwde functies voor het opschonen van invoergegevens, zoals sanitize_text_field(), sanitize_email() en sanitize_url(). Voeg ze toe aan de code van je applicatie voor degenen die de opgehaalde inhoud ontvangen en parseren.
Gebruik Caching
Caching helpt de prestaties en schaalbaarheid van je WordPress website te optimaliseren. Het verlaagt de serverbelasting en verbetert de responstijden door veelgebruikte gegevens in het geheugen op te slaan, waardoor clients en de API de gegevens sneller kunnen ophalen.
Het minimaliseren van de serverbelasting helpt ook om de WordPress API uptime te behouden tijdens verkeerspieken. Als te veel clients tegelijkertijd verzoeken sturen, kan de database deze misschien niet verwerken, wat downtime veroorzaakt.
Er zijn verschillende WordPress caching oplossingen en plugins, waaronder LiteSpeed Caching en W3 Total Cache.
Minimaliseer verzoeken en code
Om de prestaties van je applicatie en WordPress te verbeteren, gebruik je zo min mogelijk API-aanroepen. Je kunt ook gerelateerde verzoeken voor een specifieke taak bundelen en ze tegelijkertijd verzenden, zodat de heen-en-weer communicatie tot een minimum wordt beperkt.
Vermijd ook overbodige handelingen om je code efficiënt en kort te houden. Dit minimaliseert niet alleen het gebruik van bronnen, maar helpt ook de onderhoudbaarheid en schaalbaarheid te verbeteren.
Houd alle software bijgewerkt
Zorg ervoor dat je regelmatig je WordPress kernbestanden, plugins, thema’s en andere software die je gebruikt op je website bijwerkt, zodat alles soepel blijft werken. Dit garandeert dat je de nieuwste functies krijgt, waardoor beide webservices naadloos integreren.
Door de nieuwste versies te gebruiken, worden ook de nieuwste beveiligingspatches en bugfixes toegepast om de bruikbaarheid te behouden. We raden je ook aan om je te abonneren op nieuwsbrieven en blogs over WordPress om op de hoogte te blijven van de nieuwste updates.
Conclusie
WordPress REST API is een functie waarmee je CMS naadloos kan samenwerken met webservices van derden. Het wordt vaak gebruikt om applicaties te ontwikkelen met WordPress content of om een headless CMS te maken.
De REST API is standaard ingeschakeld in WordPress core, wat je kunt testen door een verzoek te sturen met cURL via WP-CLI. Om dit te doen, specificeer je de HTTP-methode en de route om toegang te krijgen tot een eindpunt dat fungeert als een functie die gegevens wijzigt.
Gebruik de GET-methode om gegevens zoals een WordPress-post op te halen naar je applicatie. Gebruik ondertussen de POST-opdracht om inhoud te pushen, PUT om een bestaande invoer te wijzigen en DELETE om een bron te verwijderen.
Als je deze functie gebruikt, zorg er dan voor dat je de juiste authenticatie toepast, zoals OAuth of Basic Auth. Houd je code ook beknopt en maak gebruik van caching om de WordPress REST API prestaties onder hoge belasting te behouden.
WordPress REST API FAQ
Wat zijn de voordelen van het gebruik van de WordPress REST API?
Met de JSON REST API kun je WordPress integreren met andere webservices. Het geeft directe toegang tot de gegevens en functies van het CMS zonder dat de gebruikers direct interactie hebben met het dashboard.
Hoe haal ik gegevens op uit WordPress REST API?
Om gegevens op te halen uit WordPress REST API, schrijf je een code die een HTTP verzoek stuurt naar een eindpunt met de GET methode. Je kunt tools gebruiken die HTTP ondersteunen, zoals JavaScript’s Fetch of cURL in WP-CLI. Vervolgens parseer je de JSON-gegevens volgens de programmeertaal van je applicatie.
Zijn er beperkingen bij het werken met de WordPress REST API?
Ja. Het maximum aantal berichten per pagina dat je kunt ophalen via de REST API is 100. Bovendien vereist het ophalen van content via de API meer rekenkracht dan een directe database query, wat tot prestatieproblemen kan leiden.
Wie zou de WordPress REST API moeten leren gebruiken?
Aspirant WordPress ontwikkelaars die een applicatie of webdienst willen bouwen die gebruik maakt van de CMS functionaliteit zouden REST API moeten leren. Het is ook essentieel voor gebruikers die een WordPress headless CMS willen ontwikkelen of hun content willen migreren naar een ander platform.