WordPress REST API – was ist das?

WordPress REST API. Schon etwas länger geistert der Begriff durch die WordPress-Wälder und viele fragen sich: Wozu ist das gut?

Eine REST API (Representational State Transfer Application Programming Interface) ist vor allem dazu da, um eine Kommunikation von Maschine zu Maschine zu ermöglichen (von eurer Webseite zu anderer Software).

Aber es gibt doch schon RSS-Feeds, warum dann so eine API?
RSS-Feeds stellen Informationen bereit. Mit einer API lassen sich aber sowohl Information auslesen, wie auch hinzufügen, verändern oder löschen. Die API bietet also viel mehr Möglichkeiten als ein RSS-Feed. Wenn Ihr vielleicht bestimmte Inhalte Eurer Smartphone-App gerne über Eure WordPress-Seite pflegen wollt, so läßt sich das durch die API problemlos realisieren. Oder Ihr könnt anderen Webseiten ganz spezifische Informationen (z.B. Post ID, Datum und ein Custom Field) bereitstellen.

Die Bereitstellung der Daten erfolgt über Endpoints. Und jeder dieser Endpoints kann eine ganz eigene Aufgabe haben. Wirklich praktisch.

Bis jetzt gibt es die komplette REST API für WordPress noch als Plugin
» de.wordpress.org/plugins/rest-api

Teile der API sind allerdings schon jetzt (ab WP 4.4) im Core vorhanden. Hier ein kleines Beispiel für einen Endpoint mit WordPress-Bordmitteln

Die Funktion „register_custom_api_hooks“ registriert einen neuen Endpoint. Im Beispiel oben die Route „custom-name/v1/posts“. Als Callback wird die Funktion „custom_api_get_posts“ ausgerufen, die die 10 neuesten Posts (ID, Titel und Permalink) in einem JSON zurückgibt.

Unter „http://deine-domain.de/wp-json/custom-name/v1/posts“ würdest Du dann die Posts ausgegeben bekommen. Je nachdem wie Eure Callback-Funktion aussieht könnt Ihr also beliebige Daten zur Verfügung stellen.

Achtung: Im Beispiel gibt es keinerlei Authentifizierung.
Also jeder kann die Daten abrufen (siehe Zeile 30: $response->header( ‚Access-Control-Allow-Origin‘, ‚*‘ );). In der WP REST API-Dokumentation gibt es aber Verschläge zu dem Thema: v2.wp-api.org/guide/authentication

Weitere Informationen zu dem Thema gibt es in dieser schönen Artikelreihe bei delicious brains:

  1. WP REST API Part 1: Creating a Mobile App with WP-API and React Native
  2. WP REST API Part 2: Customizing Default Endpoints and Adding New Ones
  3. WP REST API Part 2.5: Using it in WordPress 4.4