Die REST-API führt neue Begrifflichkeit ein. Diese sind:
- Routen und Endpunkte
- Schema
- Requests (Anfragen)
- Responses (Antworten)
- Controller-Klassen
Im folgenden werde dich die englischen Begriffe „Requests“ und „Response“ weiter verwenden, da sie letztlich auch im Code vorkommen und es später leichter wird, diese Konzepte zu verstehen.
1) Routen und Endpunkte
Eine Route ist nichts anderes als eine URL die über verschiedene HTTP-Methoden aufgerufen werden kann. Gibt man die URL https://Ihre-website.com/wp-json/
im Browser ein, erhält man sofort eine Übersicht über alle registrierten Routen und deren Endpunkte (siehe Beispiel unten).
Nehmen wir die Route http://test.local/wp-json/wp/v2/posts/(?P<id>[\\d]+)
. Sie hat fünf Endpunkte:
GET http://test.local/wp-json/wp/v2/posts/(?P<id>[\\d]+)
POST http://test.local/wp-json/wp/v2/posts/(?P<id>[\\d]+)
PUT http://test.local/wp-json/wp/v2/posts/(?P<id>[\\d]+)
PATCH http://test.local/wp-json/wp/v2/posts/(?P<id>[\\d]+)
undDELETE http://test.local/wp-json/wp/v2/posts/(?P<id>[\\d]+)
Wie man erkennen kann, lassen sich über die Endpunkte unterschiedliche Operationen durchführen:
GET
: Lesen eines einzelnen PostsPOST
,PUT
,PATCH
: Erstellen/Editieren eines einzelnen PostsDELETE
: Löschen eines Posts
2) Schema
Wie Sie im Beispiel gleich sehen werden, listet WordPress alle Parameter auf, die
- für Eingaben und
- für Ausgaben
genutzt werden können. Diese Auflistung wird allgemein als „Schema“ bezeichnet. Dies dient zum einen der Sicherheit aber auch der Nuzerfreundlichkeit.
3) Request
Ein „Request“ bedeutet „Anfrage“. Intern ist die Klasse WP_REST_Request
für den Empfang von Daten für die aktuelle Abfrage zuständig. Für jede Anfrage entsteht ein neues Objekt der Klasse und wird auch an die entsprechende Controller-Klasse weitergegeben, die man für eigene Zwecke registriert.
4) Response
„Response“ bedeutete „Antwort“. Alles, was man von der REST-API zurück erhält sind Daten im JSON-Format. Wie diese Antwort aussieht, hängt vom Endpunkt und dessen Schema ab.
5) Controller-Klassen
Die Controller-Klassen bringen letztlich alle Teile der REST-API zusammen. Die Anfrage (Request), die Verarbeitung, die Ausgabe (Response), das Anlegen von neuen Endpunkten und deren Schemata.
Beispiel: Endpunkte lesen lernen
Schauen wir uns oben genannten Endpunkt genauer an. Dazu nutzen ich das Tool Postman. Alternativ funktioniert auch Insomnia oder jedes andere Tool, dass HTTP-Abfragen senden und empfangen kann.