Anzeige
Anzeige
UX & Design
Artikel merken

WordPress als Datenquelle: So nutzt ihr die WP-REST-API

Mit WordPress können wir nicht nur Inhalte auf der eigenen Seite bereitstellen und verteilen, sondern das CMS auch als Datenquelle für weitere Produkte nutzen. Wie das funktioniert und was genau eine REST-API ist, schauen wir uns im Folgenden an.

Von Jonathan Schneider
3 Min. Lesezeit
Anzeige
Anzeige

(Grafik: Shutterstock)

Eine Webseite mit WordPress zu erstellen, ist keine Besonderheit mehr. Die Idee, WordPress nicht nur als einzelne Webseite zu benutzen, sondern auch als Datenquelle für weitere Produkte, schon. Dafür brauchen wir eigentlich nicht viel: nur eine aktuelle WordPress-Installation und das Plugin „WP REST API“.

Eine REST-API ist kein Abfallprodukt

Anzeige
Anzeige

Eine REST-API (Representational State Transfer Application Programming Interface) ermöglicht den Austausch von Informationen zwischen verschiedenen Systemen, auch Maschine-Maschine-Kommunikation genannt. Über eine REST-API können wir Aufgaben und Informationen auf verschiedenen Servern verteilen und über einen HTTP-Request anfordern. Dieser HTTP-Request besteht aus einem sogenannten Endpoint und den dazugehören Parameter.

Das hört sich schwieriger an, als es ist. Eine solche API haben wir schon oft benutzt, ohne es zu merken. Zum Beispiel bei Platzhalter-Bildern, die über eine URL und die dazugehören Farben, Größen oder Texten generiert werden. Beispiel: http://placehold.it/30×200. Die Domain placehold.it wäre in diesem Fall der Endpoint und /30×200 wären die Parameter.

Anzeige
Anzeige

Natürlich ist das eine sehr vereinfachte Form. Bei diesem HTTP-Response erhalten wird direkt das Bild mit dem richtigen MIME-Type, das wir direkt weiterverarbeiten können. Bei einer komplexen REST-API erhalten wir meist eine XML oder besser einen JSON-Response, den wir weiterverarbeiten müssen. Dabei werden Access-Token übergeben und es gibt eine Vielzahl von Endpoints, Parameter und Methoden.

Anzeige
Anzeige

REST-API und WordPress

Eine solche REST-API kann natürlich dafür sorgen, dass wir aufwendige Aufgaben auf andere Server auslagern können, um die Performance zu stabilisieren. Eine andere Möglichkeit ist, wie auch bei den Placeholder-Images, schon vorhandene Services zu benutzen. Bei unserer Zusammenführung von WordPress und einer REST-API geht es aber um die Möglichkeit, schon vorhande Informationen und Datenquellen in ein anderes Produkt einfließen zu lassen. Das hat den Vorteil, dass wir nur noch eine Datenquelle pflegen müssen und die Inhalte automatisch in allen anderen Produkten zur Verfügung stehen.

Ein Beispiel für ein solches Produkt wäre eine App für iOS oder Android, über die die gleichen Inhalte automatisch direkt auf das Smartphone oder Tablet verteilt werden. Wir könnten mit einer solchen API auch unser eigenes Dashboard bauen, das als native Applikation auf dem Rechner läuft. Den Ideen sind keine Grenzen gesetzt.

Anzeige
Anzeige

WP REST API: Vorbereitung

WordPress WP REST API Plugin (Grafik: wordpress.org)

WordPress WP REST API Plugin (Grafik: wordpress.org)

Bevor wir starten können, müssen wir das Plugin „WP REST API“ auf unserer WordPress-Seite installieren. Wer eine ausführliche Dokumentation des Plugins sucht, findet sie auf der offiziellen Webseite. Sobald wir das Plugin installiert haben, können wir auch direkt loslegen. Um zu überprüfen, ob die REST-API funktioniert, könnt ihr folgende URL in eurem Browser aufrufen:

http://domain.tld/wp-json

Unter diesem Endpoint solltet ihr die Basis-Informationen eurer WordPress-Installation erhalten (HTTP/1.1 200 OK).

WP REST API: HEAD, GET, POST, PUT, PATCH, DELETE

Um jetzt das konkrete Beispiel einer eigenen App aufzugreifen, überlegen wir uns erst mal ihre Funktionalität. Zuerst sollen die letzten zehn Artikel aufgeführt werden, es soll eine zusätzliche Suche geben und wir wollen gerne unser Logo aus der Mediathek auslesen.

Anzeige
Anzeige

10 Artikel:

http://domain.tld/wp-json/posts?filter[posts_per_page]=10

Beitrags-Suche:

http://domain.tld/wp-json/posts?filter[s]=hallo

Bild mit ID:

http://domain.tld/wp-json/media?filter[attachment_id]=1

Alle weiteren Funktionen und Möglichkeiten können aus der Dokumentation entnommen werden. Zu Testzwecken können wir den HTTP-Request direkt in unserem Browser aufrufen. Später wird dieser Aufruf natürlich im Programmcode der jeweiligen Anwendung hinterlegt. Beispielsweise könnte man einen solchen Request mit jQuery Ajax abfeuern. Daraufhin würde die Funktion den HTTP-Response erhalten, der in ein JavaScript-Objekt umgewandelt und ausgelesen wird. Mit diesen Möglichkeiten können wir einfach und schnell auf die Inhalte zugreifen und WordPress als Datenquelle benutzen.

Wichtig: Natürlich sind nicht alle Funktionen public. Das Anlegen von neuen Benutzern oder Beiträgen zum Beispiel darf natürlich nicht für jeden möglich sein, der die API benutzt. Daten anlegen, bearbeiten und löschen benötigt meist eine Authentifizierung. Es gibt insgesamt drei Wege, die Berechtigung für solche Anfragen zu erteilen. Diese könnt ihr auf der folgenden offiziellen Seite nachlesen. Wer dagegen nur Daten auslesen will, die schon öffentlich sind, benötigt eine solche Authentifizierung nicht. Ob ihr sie braucht oder nicht, steht jeweils unterhalb der Funktion in der Dokumentation.

Welche Ideen habt ihr für die Nutzung einer REST-API?

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
5 Kommentare
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

DerNivel

Sorry, aber dass die Domain der Endpoint wäre ist ja mal kompletter Bullshit. Endpoints sind die einzelnen Endpunkte (wer hätte es gedacht :D) auf die zugegriffen werden kann, also zum Beispiel domain.tld/task/3
„task“ ist der Endpoint und „3“ ein Parameter. Immer dieses halbgare Wissen hier. Ich könnte kotzen.

Antworten
Suisse

Es ist zwar Samstag, ich habe shon 4 Bier intus, aber: In diesem Beispiel ist die Domain der Endpoint. Ich kotze, da zu viel Bier.

Antworten
Jonathan Schneider

Hallo DerNivel und Suisse,
vielen Dank für eure Kommentare und der Anteilnahme eurer Ausscheidungen. In diesem vereinfachten Beispiel ging es darum, Neulingen das Grundverständnis einer API näher zu bringen. Bedingt durch ein einfaches Beispiel, gibt es keinen typischen Endpoint. Trotzdem hat die Domain, in diesem Beispiel, die gleiche Funktionsweise wie normalerweise ein Endpoint bzw. der / – bei weiteren Unklarheiten kann ich dieses aber gerne nochmals verdeutlichen, damit der Artikel auch weiterhin bei „4 Bier intus“ leserlich bleibt. Ich danke euch, für euer Feedback!

DerNivel

Leider vermittelt der Artikel Neulingen aber etwas total falsches und zwar, dass die Domain der Endpoint sei, was in diesem Fall jetzt zutrifft, aber wohl meistens nicht der Fall ist. Gerade, wenn du Neulingen das Grundverständnis einer API näher bringen möchtest, muss man klar machen, dass die Domain nicht gleich Endpoint ist, sondern nur in diesem speziellen Fall!

Jürgen Schulze

Das ging schon mit Perl und Pipes als Trenner. Hat weniger Overhead

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige