Wordpress - XML RPC Schnittstelle

Wordpress nutz eine XML-RPC Schnittstelle um auf einem standardisierten Weg Daten mit anderen Dritt-Applikationen wie Mobile-, Desktop- oder Webapps auszutauschen. Diese Applikationen benötigen einen sogenannten API Endpoint, welcher standardmässig die Blog URL ist, gefolgt von "xmlrpc.php".
Für einen Blog mit der Adresse http://example.com wäre der API Endpoint also: http://example.com/xmlrpc.php
Ruft man diese URL im Browser auf wird einem die Nachricht
XML-RPC server accepts POST requests only.
angezeigt. XML-RPC ist seit Wordpress 3.5 standardmässig aktiviert.

Um nicht jedem Zugriff auf diese Schnittstelle zu ermöglichen, muss man sich stets per Username und Passwort authentifizieren (gleiche Angaben wie bei Login in Wordpress Backend).

Themes und Plugins können mit dem XML-RPC Endpoint interagieren, sowie Methoden hinzufügen oder das Antwortdokument anpassen.



XML-RPC Calls

Das Commandline Tool 'curl' eignet sich hervorragend um einfach mal ein wenig mit der XML RPC Schnittstelle seines Blogs herumzuspielen. Zum Beispiel können wir uns die Liste aller Blogs eines API Endpoints zurückgeben lassen:

Windows:
curl -d "<?xml version=\"1.0\"?> <methodcall> <methodname>wp.getUsersBlogs</methodname> <params> <param /> <value>username</value>  <param /> <value>password</value>  </params> </methodcall>" http://example.com/xmlrpc.php


Linux:
curl -d '<?xml version="1.0"?> <methodcall> <methodname>wp.getUsersBlogs</methodname> <params> <param /> <value>username</value>  <param /> <value>password</value>  </params> </methodcall>' http://example.com/xmlrpc.php


Natürlich bietet diese Schnittstelle tausende Anwendungsmöglichkeiten, so kann man eigene API Methoden schreiben um Daten für externe Applikationen zur Verfügung zu stellen, oder von solchen Daten zu holen. Man könnte auch eine mobile Applikation schreiben zum Verwalten seines Blogs und vieles mehr.

Habt ihr gute Beispiele zur Verwendung dieser Schnittstelle oder nutzt ihr diese überhaupt nicht? Was haltet ihr davon, dass genau XML RPC gewählt wurde? Alle Meinungen interessieren uns.

Quellen / Weitere Infos

Labels: , , , , , ,