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: api, rpc, webservices, wordpress, xml, xml-rpc, xmlrpc