WordPress
REST API
Zoeken…
Invoering
De WordPress REST API biedt API-eindpunten voor WordPress-gegevenstypen waarmee ontwikkelaars op afstand kunnen communiceren met sites door JSON-objecten (JavaScript Object Notation) te verzenden en ontvangen.
Wanneer u inhoud verzendt naar of een verzoek indient voor de API, wordt het antwoord geretourneerd in JSON. Hiermee kunnen ontwikkelaars WordPress-inhoud maken, lezen en bijwerken vanuit client-side JavaScript of externe applicaties, zelfs die geschreven in talen buiten PHP.
Opmerkingen
Om dit eenvoudige WordPress REST API-voorbeeld voor u te laten werken, moet u leren hoe het meer gedetailleerd werkt. Officiële documentatie beveelt aan om te leren over:
Routes / Endpoints - dit zijn toewijzingen van afzonderlijke HTTP-methoden aan routes die bekend staan als "endpoints" - u doet dit met de functie register_rest_route () , en hier kunt u meer informatie vinden over Routes en Endpoints .
Verzoeken - WordPress REST API definieert de klasse
WP_REST_Request
die wordt gebruikt om informatie voor het huidige verzoek op te slaan en op te halen.WP_REST_Request
objecten worden automatisch voor u gegenereerd wanneer u een HTTP-aanvraag doet voor een geregistreerde route. De gegevens die in de aanvraag zijn opgegeven, bepalen welk antwoord u uit de API krijgt. Hier vindt u meer informatie over de klasse WP_REST_Request .Antwoorden - zijn de gegevens die u terugkrijgt van de API. De
WP_REST_Response
biedt een manier om te communiceren met de responsgegevens die door eindpunten worden geretourneerd. In uw eindpuntdefinitie noemt u de callback-functie (respons) om uw interactie te dienen. Hier vindt u meer informatie over de klasse WP_REST_Response .Schema - Elk eindpunt vereist en biedt enigszins verschillende datastructuren en die structuren worden gedefinieerd in het API-schema. Als u onderhoudbare, vindbare en gemakkelijk uitbreidbare eindpunten wilt, is het raadzaam om het schema te gebruiken. Hier kunt u meer informatie vinden over het schema .
Controller Classes - ze brengen alle elementen op één plek samen. Met een controllerklasse kunt u de registratie van routes en eindpunten beheren, aanvragen afhandelen, een schema gebruiken en API-reacties genereren. Je hebt al kennis gemaakt met twee controller-klassen:
WP_REST_Request
enWP_REST_Response
. Hier kunt u meer leren over de Controller Classes
Opmerking: sommige van deze informatie is afkomstig uit het officiële Wordpress REST APi-handboek
Volledig werkvoorbeeld
add_action('rest_api_init', 'my_rest_validate_endpoint' );
function my_rest_validate_endpoint() {
// Declare our namespace
$namespace = 'myrest/v1';
// Register the route
// Example URL matching this route:
// http://yourdomain/wp-json/myrest/v1/guides/tag=europe/price=29
register_rest_route($namespace,
// Using regular expressions we can initially validate the input
'/guides/tag=(?P<tag>[a-zA-Z0-9-]+)/price=(?P<price>[0-9]+)',
// We can have multiple endpoints for one route
array(
array(
'methods' => 'GET',
'callback' => 'my_get_guides_handler'
)
),
// We can register our schema callback
// 'schema' => 'my_get_guide_schema',
);
// You can register another route here the same way
}
// The callback handler for the endpoint
function my_get_guides_handler(WP_REST_Request $request) {
// Get the parameters:
$tag = $request->get_param('tag');
$price = $request->get_param('price');
// Do something with the parameters
// for instance: get matching guides from the DB into an array - $results
// ...
// Prepare the response
$message = "We've found " . count($results) . " guides ";
$message .= "(searching for a tag: " . $tag . ", with a price tag: " . $price . ")";
// The response gets automatically converted into a JSON format
return new WP_REST_Response(
array(
'results' => $results,
'message' => $message,
'status' => 'OK'
),
200 );
}