XML-RPC Jan 30 2006
So I’ve been hacking on XML-RPC last couple of days, and next few days a fairly nice implementation should hit the xFramework.Common.Xml library within the xFramework svn repository. The reason I’ve been doing this is a multitude of things combined really. First of all, I switched back from using the Flock browser, back to using Firefox. Flock is nice, but was a little sluggish, especially with multiple tabs, or if you’ve left it open for a while (I tend to have both of those things happen). When I got back to Firefox, I figured I’d browse through the plugins, and I found Performancing, a superb blogging plugin that allows me to blog straight from the browser whenever the feeling strikes. Well, it would have done, had my blog software supported it. I wrote the blog software myself, and so I figured adding support for one of the common API’s might be a good idea - I picked the MetaWeblog API, and so delved into the XML-RPC spec, along with the MetaWeblog spec, and knocked up an implementation. I am now blogging this straight from my browser :-)
The other reasons I really wanted to make a good, re-usable implementation of XML-RPC was because I’m working on something else that needs to be able to expose certain data with a defined interface, and to be honest SOAP based web services were boring me (why do I need to send everything in an envelope? Both sides of the service know what to expect, as they have to conform to SOME kind of interface, so why confuse the payload further with a load of extra namespaces and nonsense?). I almost went the RESTful route, but out of the two, and with the advantage of being able to use XML-RPC to implement the blogging stuff I wanted to get round to, I figured I’d learn that and cook up some code to do it. I’ll probably get round to REST at some point, but for now I’m simply extending and improving the RPC code to do exactly what I want it to do. It’s so ridiculously simple when I think about it, it makes everything really easy. I guess I’m quite surprised more stuff doesn’t use it really, as it’s a very neat, tidy and defined way of doing things. Great stuff.