Cocoa XML-RPC Client
Lavorare in maniera agevole con l'obiettivo di portare a termine i propri "task" nel minor tempo possibile è desiderio di tutti, per questo è necessaria la "borsa degli attrezzi". Per chi, come il sottoscritto che lavora nel mondo dell'Information Tecnology, fa del proprio Mac la sua "stazione di lavoro" desidero proporre uno strumento (ovviamente per Mac) che reputo molto utile.
XML-RPC Client è uno strumento basato su Cocoa (sviluppato da Todd Ditchendorf http://twitter.com/itod http://www.linkedin.com/in/itod47) per Mac OS X che consente l'accesso e il debug di servizi web basati sul protocollo XML-RPC utilizzando una semplice interfaccia grafica. Ecco un breve elenco delle funzionalità (estratte dal portale http://ditchnet.org/xmlrpc/) offerte dallo strumento:
- Universal Binary. XML-RPC Client now runs natively on both PPC and Intel Macs;
- Find panel for Response Object text area Now you can use the standard Cocoa find panel to search for strings in the response Object text area. Much better;
- Cool new support for the XML-RPC base64 data type;
- Support for the XML-RPC dateTime.iso8601 data type;
- Multi-window application (Document-based, in Cocoa developer terms);
Di seguito una serie di screenshot che illustrano lo strumento all'opera. Ho eseguito una serie di test sui servizi XML-RPC wp forniti da WordPress.com, in particolare:
- wp.getUsersBlogs. Retrieve the blogs of the users;
- wp.getTags. Get list of all tags.
Subito dopo gli screenshot sono illustrati alcuni esempi dei flussi di richiesta e risposta per i servizi XML-RPC utilizzati negli esempi.
Lo strumento che ho brevemente illustrato è di uso immediato (ready to run), necessita però di qualche altro miglioramento. Restando in tema XML-RPC è comunque possibile costruire il proprio client o server XML-RPC utilizzando le librerie (o framework) più conosciute disponibili per qualunque piattaforma. Alla pagina XML-RPC (en version - http://en.wikipedia.org/wiki/XML-RPC#Implementations) di Wikipedia troverete una lista completa delle implementazioni di questo protocollo. Riporto dei link che puntano a delle risorse interessanti riguardo XML-RPC:
- O'Reilly Tutorial http://www.xml.com/pub/rg/XML_RPC_Tutorials;
- Apache XML-RPC Client example http://ws.apache.org/xmlrpc/client.html;
- Working with WordPress XMLRPC- Simple Example http://joysofprogramming.com/working-with-wordpress-xmlrpc-simple-example/
Esempio XML Request for wp.getUsersBlogs.
<methodCall> <methodName>wp.getUsersBlogs</methodName> <params> <param> <value> <string>musarra</string> </value> </param> <param> <value> <string>xxxxxxxx</string> </value> </param> </params> </methodCall>
Esempio XML Response for wp.getUsersBlogs
<methodResponse> <params> <param> <value> <array> <data> <value> <struct> <member> <name>isAdmin</name> <value> <boolean>1</boolean> </value> </member> <member> <name>url</name> <value> <string>http://musarra.wordpress.com/</string> </value> </member> <member> <name>blogid</name> <value> <string>9531285</string> </value> </member> <member> <name>blogName</name> <value> <string>Antonio Musarra's Blog</string> </value> </member> <member> <name>xmlrpc</name> <value> <string>http://musarra.wordpress.com/xmlrpc.php</string> </value> </member> </struct> </value> </data> </array> </value> </param> </params> </methodResponse>
Esempio di risposta wp.getTags in Object Notation
( { count = 1; "html_url" = "http://musarra.wordpress.com/tag/adsl/"; name = ADSL; "rss_url" = "http://musarra.wordpress.com/tag/adsl/feed/"; slug = adsl; "tag_id" = 1277; }, { count = 1; "html_url" = "http://musarra.wordpress.com/tag/agenzia-entrate/"; name = "Agenzia Entrate"; "rss_url" = "http://musarra.wordpress.com/tag/agenzia-entrate/feed/"; slug = "agenzia-entrate"; "tag_id" = 2111537; }, { count = 1; "html_url" = "http://musarra.wordpress.com/tag/agpf-4-5/"; name = "AGPF 4.5"; "rss_url" = "http://musarra.wordpress.com/tag/agpf-4-5/feed/"; slug = "agpf-4-5"; "tag_id" = 31670418; },