Die WordPress REST API ist dabei, WordPress zu ändern. Du hast es vielleicht noch nicht bemerkt, da viel davon unter der Oberfläche ist, aber die Auswirkungen der REST API machen einen großen Unterschied für die Zukunft von WordPress, sowohl in Bezug auf die Codebasis als auch auf den Gebrauch.
Wenn du noch nicht mit der WordPress REST API gearbeitet hast, wirst du dich vielleicht fragen, was das ist. Also lasst uns mit einem Blick auf die REST-API anfangen.
Was ist die WordPress REST API?
Die WordPress REST API ist eine Schnittstelle, mit der Entwickler von außerhalb der WordPress-Installation selbst auf WordPress zugreifen können. Der Zugriff erfolgt über JavaScript, d.h. es können damit interaktive Webseiten und Apps erstellt werden.
REST steht für Representational State Transfer und API steht für Application Programming Interface. Schauen wir uns an, was jedes davon bedeutet.
Was ist eine Application Programming Interface (API)?
Ein Application Programming Interface (API) ist definiert als:
„Eine Schnittstelle oder ein Kommunikationsprotokoll zwischen einem Client und einem Server, das die Erstellung von clientseitiger Software vereinfachen soll.“
Wenn du mit den APIs nicht vertraut bist, hilft das vielleicht nicht sehr viel. Um es einfacher auszudrücken, eine API ist ein Satz von Code, der es einem System erlaubt, mit einem anderen zu interagieren (oder eine „Schnittstelle“ zu bilden). Wenn du jemals eine Google-Karte zu deiner WordPress-Site hinzugefügt hast, hast du Googles Maps-API verwendet, die es deiner WordPress-Site ermöglicht, mit Google Maps zu interagieren.
Diese Systeme müssen nicht völlig getrennt sein. WordPress hat bereits mehrere APIs, für Dinge wie Plugins, Einstellungen und Shortcodes. Diese können von Plugin- und Theme-Entwicklern verwendet werden, um mit dem WordPress-Core zu interagieren und Dinge zu ermöglichen (wie das Erstellen von Shortcodes und das Hinzufügen von Einstellungsbildschirmen zum WordPress-Admin).
Der Unterschied zur REST-API besteht darin, dass sie es Systemen außerhalb deiner WordPress-Installation selbst erlaubt, mit WordPress zu interagieren, und genau hier kommt der REST-Teil ins Spiel.
Was ist der Representational State Transfer (REST)?
Der Representational State Transfer, kurz REST, stellt Standards zur Verfügung, die Web-Systeme als Schnittstelle untereinander nutzen können. Ohne REST wären zwei Systeme nicht in der Lage, sich gegenseitig zu verstehen und somit Daten hin und her zu senden.
Damit eine Anwendung RESTful ist, muss sie fünf Prinzipien erfüllen:
- Einheitliche Schnittstelle. Die URLs, die für den Zugriff auf Ressourcen im System verwendet werden, müssen einheitlich, konsistent und über einen gemeinsamen Ansatz wie GET (mehr davon in Kürze) zugänglich sein.
- Client-Server. Client-Anwendungen und Server-Anwendungen müssen getrennt sein, damit sie unabhängig voneinander entwickelt werden können. Wenn sich die serverseitige Technologie (z.B. WordPress) ändert, muss die serverseitige Anwendung (z.B. eine App) weiterhin auf die gleiche einfache Art und Weise darauf zugreifen können.
- Stateless. Der Server ändert seinen Zustand nicht, wenn eine neue Anfrage über die API gestellt wird. Er speichert die gestellten Anforderungen nicht.
- Cachefähig. Alle Ressourcen müssen cachefähig sein, um die Geschwindigkeit und die Konformität mit Webstandards zu verbessern. Das Caching kann server- oder clientseitig implementiert werden.
- Layered System. Ein RESTful-System ermöglicht den Zugriff über mehrere Schichten, wobei die Daten bei Bedarf auf Zwischenservern gespeichert werden. Der Server kann nicht erkennen, ob der endgültige Client direkt mit ihm verbunden ist.
All diese Einschränkungen beziehen sich auf Webseiten und Anwendungen und regeln die Art und Weise, wie eine Anwendung mit der API verbunden werden kann.
Was Bedeutet das für WordPress?
Die Kombination von REST und API bedeutet, dass die WordPress REST API ein Satz von Code ist, der es anderen Systemen ermöglicht, mit WordPress zu kommunizieren, und dass er so aufgebaut ist, dass diese Systeme sich gegenseitig verstehen.
Es bedeutet, dass eine Website von Drittanbietern oder eine mobile Anwendung beispielsweise auf deine WordPress-Datenbank zugreifen, Daten von ihr abrufen und Daten hinzufügen kann.
Dafür gibt es jedoch eine Reihe von Auswirkungen und Verwendungsmöglichkeiten.
Verstehen der WordPress REST API
Die WordPress REST API wurde als Antwort auf die Veränderungen in der Art und Weise entwickelt, wie Websites und Anwendungen entwickelt werden und die Notwendigkeit, WordPress weiter zu öffnen.
Hintergrund zur WordPress REST API
Die WordPress REST API wurde im Dezember 2016 als Teil des Cores in der Version 4.7 veröffentlicht, aber vorher war sie als Plugin verfügbar.
Sie wurde entwickelt, um eine Reihe von Anwendungen zu unterstützen, die auf WordPress aufbauen, und um WordPress von einem Content Management System in eine Anwendungsplattform zu verwandeln.
Es wird ausgiebig von WordPress.com genutzt, dessen JavaScript-basierte Schnittstelle die REST-API zur Anbindung an die WordPress-Datenbank nutzt. Es wird auch von der Gutenberg-Redaktionsschnittstelle verwendet, die seit 2019 zum Kern gehört.
Die REST-API erweitert die Bandbreite der Anwendungen, für die WordPress verwendet werden kann. Während sich ein Content Management System bei der Ausführung einer komplexen Website auszeichnet, kann eine Applikationsplattform auch für webbasierte Einzelseitenanwendungen oder SPAs verwendet werden (wenn du jemals Google-Docs verwendet hast, hast du eines davon verwendet).
In diesen wird der Inhalt aktualisiert, wenn der Benutzer eine Aktion ausführt, anstatt neue Seiten zu laden. Da es JavaScript (eine clientseitige Sprache) anstelle von PHP (eine serverseitige Sprache) verwendet, kann es Dinge im Browser des Nutzers geschehen lassen, ohne ständig Anfragen an den Server senden zu müssen.
Auswirkungen für WordPress-Anwender und -Entwickler
Wenn du ein Benutzer und/oder Entwickler bist, der mit WordPress arbeitet, hat die REST API eine Reihe von Auswirkungen.
Für Benutzer sind dies unter anderem:
- Änderungen an der Schnittstelle, einschließlich des Gutenberg-Editors.
- Änderungen und Verbesserungen an der WordPress Mobile App.
- Selbst gehostete WordPress-Administrationsbildschirme, die mit der Zeit mehr wie WordPress.com-Bildschirme aussehen.
Für Entwickler gibt es weitere Auswirkungen und Möglichkeiten:
- Die Möglichkeit, SPAs mit der REST API zu erstellen, die Daten aus WordPress beziehen, aber ganz anders aussehen als WordPress.
- Die Möglichkeit, WordPress mit anderen Frontend-Technologien und Systemen zu integrieren.
- Die Fähigkeit, mit WordPress zu entwickeln, wenn du ein Frontend-Entwickler bist, der kein PHP schreibt.
- Für PHP-Entwickler, ein zunehmender Bedarf, deine Fähigkeiten zu erweitern, um JavaScript zu integrieren.
- Spezifische Änderungen, wie z.B. die Notwendigkeit, Gutenberg-Blöcke statt Meta-Boxen in Seiten- und Post-Editing-Screens zu bauen.
Mit der Zeit wird die WordPress REST API bedeuten, dass mehr vom WordPress Core in JavaScript und nicht in PHP geschrieben wird. Wenn du ein WordPress Entwickler bist, bedeutet dies, dass du JavaScript lernen musst.
Wie man auf die WordPress REST API Zugreift
Wie greift man auf die WordPress REST API zu?
Um auf die WP-REST API zuzugreifen, musst du über die Kommandozeile auf deine Seite zugreifen. Bei WordPress heißt das WP-CLI. Du machst nichts davon über deine Admin-Screens oder indem du direkt auf den Code deiner Seite zugreifst.
Schauen wir uns an, wie du anfangen kannst.
Zugriff auf WP-REST über WP-CLI
WP-CLI ist die WordPress-Kommandozeilenschnittstelle. Es ermöglicht dir den Zugriff auf und die Arbeit mit WordPress über das Command Line Interface (CLI) auf deinem Computer. WP-CLI ist bei allen Kinsta-Hostingpaketen vorinstalliert.
Um auf das CLI zuzugreifen, öffne das Terminal auf einem Mac oder in Linux oder die Eingabeaufforderung in Windows.
Um auf eine entfernte Seite zuzugreifen, muss man per SSH auf den Server zugreifen, um ihn über WP-CLI zu erreichen (Du kannst keine Verbindung über SSH herstellen? Erfahrst du, wie Sie den SSH-Fehler „Connection Refused“ beheben können.)
Um auf eine lokale Seite zuzugreifen, muss man einfach die richtige Verzeichnisstruktur von der Kommandozeile aus verwenden. Es ist eine gute Idee, mit der REST-API auf einer lokalen Testseite zu experimentieren, bevor du sie auf einer Live-Seite ausprobierst.
Du musst speziell auf die REST-API für deine Site zugreifen, so wie hier
http://yoursite.com/wp-json/wp/v2
Danach kannst du dann Elemente hinzufügen, um auf bestimmte Datentypen zuzugreifen, die wir in Kürze näher betrachten werden. Diese Elemente werden als Endpunkte bezeichnet.
Authentifizierung
Sobald du auf deine Website zugegriffen hast, musst du dich eventuell authentifizieren. Einige Endpunkte sind öffentlich und erfordern keine Authentifizierung, andere hingegen schon.
Du loggst dich hier nicht in deinen Site-Administrator ein: Die REST-API macht die Dinge etwas anders.
Um deine Site über WP-CLI authentifizieren zu können, musst du ein Authentifizierungs-Plugin installieren. Für Entwicklungsinstallationen erledigt das Basic Auth Plugin die Aufgabe und ist einfach zu bedienen.
Für Live-Sites solltest du jedoch eine robustere Form der Authentifizierung verwenden, wie z.B. das JWT-Authentifizierungs-Plugin, das JSON Web Token verwendet und sicherer ist.
Du kannst dann über die Kommandozeile auf die Daten zugreifen und die Authentifizierung einschließen.
Das folgende Beispiel verwendet curl
, um die Verbindung zu WordPress zu testen. Es wird eine Liste von Entwurfsposten ausgegeben.
curl -X GET --user username:password -i http://yoursite.com/wp/v2/posts?status=draft
Entwürfe sind keine öffentlichen Informationen, daher benötigt man eine Authentifizierung, um darauf zugreifen zu können. Aber wenn du nach Daten suchst, die öffentlich sind, brauchst du keine Authentifizierung. Um also eine Liste von veröffentlichten Beiträgen zu erhalten, könntest du eine Liste verwenden:
curl -X GET http://yoursite.com/wp-json/wp/v2/posts
Dies würde alle veröffentlichten Beiträge abrufen, da diese öffentlich sind.
Übersicht der WordPress REST API Befehle
Sobald du auf deine Website zugegriffen hast und du weißt, wie man die Authentifizierung verwendet (und ob du sie wirklich brauchst), musst du einen einer Reihe von Befehlen verwenden, um mit deiner Website zu interagieren.
Die Befehle, die du verwenden musst, sind:
ET
ruft eine Ressource wie einen Beitrag oder einige andere Daten ab.POST
fügt dem Server eine Ressource hinzu, wie z.B. einen Beitrag, einen Anhang oder eine andere Ressource.PUT
kann verwendet werden, um eine Ressource zu bearbeiten oder zu aktualisieren, die sich bereits auf dem Server befindet.DELETE
entfernt eine Ressource vom Server. Verwende sie mit Vorsicht!
Schauen wir uns nacheinander die einzelnen Ressourcen an.
GET
Der GET
-Befehl ist wahrscheinlich der am häufigsten verwendete: er ruft Daten ab. Das folgende Beispiel (die Sie nach erfolgreichem Zugriff auf Ihre Website verwenden) würde eine Liste aller veröffentlichten Seiten deiner Website abrufen:
GET http://yoursite.com/wp-json/wp/v2/posts/?status=published
Beachte, dass ich nicht den vollständigen Pfad zu deiner Website in die obige Zeile aufgenommen habe, da du darauf bereits mit WP-CLI zugegriffen hast.
Nachdem du diese Daten abgerufen hast, kannst du sie verwenden, um deinen nächsten Schritt zu informieren. Du kannst einen dieser Beiträge löschen, bearbeiten oder aktualisieren. Du könntest einfach Beiträge in deiner Webanwendung ausgeben.
Nehmen wir an, du möchtest den neuesten Beitrag abrufen. Du würdest dies verwenden:
GET http://yoursite.com/wp-json/wp/v2/posts/?per_page=1
Es gibt eine Reihe von Argumenten, die du bei der Arbeit mit Beiträgen verwenden kannst. Siehe das WordPress REST API-Handbuch für mehr.
POST
Verwende POST
, um neue Daten oder Ressourcen zu deiner Seite hinzuzufügen.
Wenn du zum Beispiel einen Beitrag erstellen möchtest, würdest du mit einem POST-Befehl beginnen:
POST http://yoursite.com/wp-json/wp/v2/posts/
Dadurch würde eine neue leere Wechselstelle entstehen.
Du kannst den Beitrag dann mit einem PUT
-Befehl aktualisieren, um ihn zu bearbeiten.
Mit einem POST
-Befehl kannst du auch andere Ressourcen als Beiträge hinzufügen, einschließlich Anhänge und andere Beitragstypen.
Um eine Seite zu deiner Website hinzuzufügen, kannst du etwas wie das hier verwenden:
POST http://yoursite.com/wp-json/wp/v2/posts/pages
Dies würde eine leere Seite auf die gleiche Weise wie ein leerer Beitrag erstellen.
PUT
Mit dem PUT
-Befehl kannst du eine bestehende Ressource einschließlich der Beiträge bearbeiten.
Nehmen wir an, du hast eine Anzahl von Entwurfsposts auf deiner Seite. Du möchtest sie überprüfen und einen aktualisieren, um ihn zu veröffentlichen.
Du könntest damit beginnen, eine Liste aller Entwurfsposts zu holen:
POST /wp/v2/posts/?status="draft"
Das System gibt dir eine Liste mit allen aktuellen Stellenentwürfen. Du kannst den Status einer dieser Stellen über deren ID ändern:
PUT http://yoursite.com/wp-json/wp/v2/posts/567
Dadurch wird auf diesen Beitrag zugegriffen und du kannst ihn bearbeiten. Du kannst dann seinen Status mit dem Status-Argument ändern:
{
"status" = "publish"
}
Oder du könntest Inhalte zum Beitrag hinzufügen und ihn veröffentlichen:
{
"status" = "publish"
"content" = "content here"
}
Der Server gibt einen 200 - OK
Status zurück, der dir mitteilt, dass die PUT-Anfrage den Beitrag erfolgreich bearbeitet hat.
DELETE
Der DELETE
-Befehl tut das, was du erwarten würdest: er löscht eine Ressource. Wenn du ihn zum Löschen eines Beitrags verwendest, wird er standardmäßig in den Papierkorb gelegt, anstatt ihn dauerhaft zu löschen.
Wenn du also den Beitrag, den du gerade erstellt hast, in den Papierkorb verschieben möchtest, würdest du dies verwenden:
DELETE http://yoursite.com/wp-json/wp/v2/posts/567
Wenn du jedoch den Papierkorb umgehen und ihn dauerhaft löschen wolltest, würdest du das force
-Argument verwenden:
DELETE http://yoursite.com/wp-json/wp/v2/posts/567?force=true
Dies löscht den Beitrag dauerhaft ohne die Möglichkeit, ihn rückgängig zu machen, daher sollte er mit Vorsicht verwendet werden.
Wann die WordPress REST API Nicht Verwendet Werden Soll
Die WordPress REST API wird nicht immer der richtige Ansatz für die Entwicklung einer Website oder Anwendung sein. Hier sind einige Überlegungen, die du beachten solltest, bevor du sie für die Entwicklung verwendest:
Kompatibilität
Wenn deine Anwendung auf Geräten verwendet werden soll, auf denen kein JavaScript ausgeführt wird, oder von Benutzern, die es wahrscheinlich ausgeschaltet haben, dann wird sie nicht ausgeführt, wenn du die REST-API verwendest.
Eine in PHP programmierte WordPress-Seite gibt HTML aus, so dass sie nicht unter diesem Problem leidet. Geräte, die kein JavaScript verwenden, werden immer seltener, aber wenn du speziell für diese entwickelst, wird die REST-API nicht funktionieren.
Ähnlich verhält es sich mit der REST-API, wenn die Benutzer wahrscheinlich JavaScript ausschalten werden, dann wird die Arbeit mit der REST-API Probleme verursachen. Einige Benutzer schalten JavaScript in ihren Browsern aus Gründen der Zugänglichkeit oder Sicherheit aus.
Zugänglichkeit
Sites oder Apps, die mit JavaScript entwickelt wurden, sind nicht immer so zugänglich wie die Ausgaben in HTML.
Dies liegt vor allem an der Art und Weise, wie JavaScript verwendet wird, um dynamische Inhalte zu liefern, die mit Screenreadern möglicherweise nicht gut abgespielt werden und für Menschen mit Sehbehinderungen oder lichtempfindlicher Epilepsie Probleme verursachen können.
Durch die Verwendung der REST-API für den Zugriff auf deine WordPress-Site und die Ausgabe von Daten in einer Form, die für die Zugänglichkeit ausgelegt ist, kannst du diese Probleme überwinden, aber es lohnt sich, deine Site während der Entwicklung auf Zugänglichkeit zu prüfen.
SEO
Einzelne Seitenanwendungen, die häufig aktualisiert werden, können manchmal SEO-Probleme verursachen. Das liegt daran, dass Inhalte, die bei der ersten Ausgabe der Seite nicht geliefert werden, von Suchmaschinen möglicherweise nicht indiziert werden.
Google und andere Suchmaschinen holen die Tatsache ein, dass viele Websites inzwischen SPA-aktiviert sind und entsprechend indiziert werden. Es lohnt sich jedoch, eine gründliche SEO-Prüfung jeder Website durchzuführen, die man mit Hilfe der REST-API entwickelt.
Wie man die WordPress REST API Deaktiviert
Wenn du nicht möchtest, dass Anwendungen über die REST-API auf Daten von deiner Website zugreifen können, kannst du sie deaktivieren. Denke daran, dass öffentliche Daten für jeden zugänglich sein können, nicht nur für dich.
Um dies zu tun, kannst du das Disable WP REST API Plugin installieren. Dies deaktiviert die REST-API für jeden, der nicht auf deiner Seite eingeloggt ist.
Alternativ kannst du etwas Code in die Funktionsdatei deines Themes einfügen oder ein eigenes Plugin schreiben. Es ist besser, ein Plugin zu schreiben, da dies keine themenspezifische Funktionalität ist.
Füge in deinem Plugin nur zwei Zeilen hinzu:
add_filter( 'json_enabled', '__return_false' );
add_filter( 'json_jsonp_enabled', '__return_false' );
Dadurch wird die REST-API für deine Seite komplett deaktiviert. Es kann Auswirkungen auf deine Admin-Screens haben, also stelle sicher, dass alles gut funktioniert, sobald du es hinzugefügt hast.
Real-World-Anwendungen mit der WordPress REST API
Die REST API bietet einige spannende Möglichkeiten für die Zukunft von WordPress. Hier sind einige Beispiele von Anwendungen und Seiten, die die WordPress REST API nutzen, um SPAs zu erstellen oder WordPress mit anderen Seiten und Technologien zu verlinken.
WordPress.com
Die WordPress.com Admin-Screens sind vollständig mit der REST-API aufgebaut, um ein SPA zu bieten, mit dem die Benutzer interagieren, um ihre Website zu verwalten.
Dies ermöglicht eine dynamische Kommunikation zwischen der Schnittstelle und dem Server und führt zu einer benutzerfreundlichen Oberfläche, die WordPress.org wahrscheinlich rechtzeitig nachahmen wird.
Der Block Editor (Gutenberg)
Auch in den WordPress Admin-Screens, aber diesmal auch im selbst gehosteten WordPress, nutzt der Gutenberg Block-Editor die REST-API, um mit Ihrer Datenbank zu kommunizieren und Blöcke zu erstellen.
Damit Posttypen mit dem Gutenberg-Editor arbeiten können, müssen sie die REST-API aktiviert haben. Was bedeutet, dass wenn du einen benutzerdefinierten Posttyp registrierst und Gutenberg benutzt, musst du die folgende Zeile hinzufügen, um den Blockeditor für diesen Posttyp zu aktivieren:
"show_in_rest" = true;
Event Espresso
Event Espresso ist ein WordPress-Plugin, mit dem Benutzer Veranstaltungen organisieren und veröffentlichen können. Es nutzt die REST-API, so dass Benutzer von außerhalb von WordPress auf die Daten zugreifen können. Das bedeutet, dass du mobile Apps oder SPAs zur Verwaltung deiner Events erstellen kannst.
UsTwo
UsTwo ist eine digitale Agentur, deren Website mit der REST API als Single Page Application aufgebaut wurde. Diese kombiniert ein Front-End, das mit React erstellt wurde, mit einem Back-End, das mit WordPress betrieben wird (Empfohlene Lektüre: Deine Leitfaden zur Gründung und zum Betrieb einer erfolgreichen WordPress-Agentur).
Der Inhalt ihrer Einzelseite ist modular, mit einer Struktur, die sich von einer Standard WordPress Seite unterscheidet. Damit dies funktioniert, verwenden sie ein benutzerdefiniertes Page Builder Plugin, mit dem ihr Team modulare Inhalte zur Website hinzufügen kann.
USA Today
USA Today’s Website wurde mit Hilfe der WordPress REST API Integration mit bestehenden Systemen und Modulen auf der Website neu aufgebaut.
Die REST-API ermöglichte es, den Inhalt der Website mit Hilfe von JSON an andere Kanäle wie Facebook Instant Articles und Apple News weiterzuleiten. Sie schrieben auch ein soziales Online-Spiel für ihre Sportabteilung, das mit JavaScript erstellt wurde.
Zusammenfassung
Die WordPress REST API bietet einige spannende Herausforderungen, aber auch interessante Möglichkeiten sowohl für WordPress-Anwender als auch für Entwickler. Es ist die Zukunft von WordPress und wird wahrscheinlich die Art und Weise, wie wir mit WordPress entwickeln und wie wir es nutzen, radikal verändern.
Was ist deine Meinung zur REST API? Hast du sie für einige deiner Projekte genutzt? Sage es uns in der Kommentar-Sektion unten!
Schreibe einen Kommentar