RSD: Discoverability of Blog APIs

If you configure Flock for blogging, you might wonder why some blogs can be configured by simply entering the URL of the blog only, while in Flickr, you sometimes need to enter the URL to the specific API endpoint. How is Flock able to find the URL endpoint from the URL of the blog? Finding the URL of the API endpoint is similar to the problem described in Chapter 4 of locating the URLs of feeds based on the URL of the web site. You won’t be surprised then to discover that someone invented an autodiscovery mechanism for the existence of blogging APIs:

http://en.wikipedia.org/wiki/Really_Simple_Discovery

For detailed technical information on the mechanism, read the RSD specification:

http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html

Here I point out how RSD has been implemented by at least two major blog publishing services: WordPress and Blogger. You can go to any of the blogs run by WordPress, such as the one for WordPress news:

http://wordpress.com/blog/

in which you will find the following link:

         <link rel="EditURI" type="application/rsd+xml" title="RSD"
               href="http://wordpress.com/xmlrpc.php?rsd" />
      

From looking at http://wordpress.com/xmlrpc.php?rsd , which is as follows:

         <?xml version="1.0" encoding="UTF-8"?><rsd version="1.0"
               xmlns="http://archipelago.phrasewise.com/rsd">
           <service>
             <engineName>WordPress</engineName>
             <engineLink>http://wordpress.org/</engineLink>
             <homePageLink>http://wordpress.com</homePageLink>
             <apis>
               <api name="WordPress" blogID="1" preferred="true"
                    apiLink="http://wordpress.com/xmlrpc.php" />
               <api name="Movable Type" blogID="1" preferred="false"
                    apiLink="http://wordpress.com/xmlrpc.php" />
               <api name="MetaWeblog" blogID="1" preferred="false"
                    apiLink="http://wordpress.com/xmlrpc.php" />
               <api name="Blogger" blogID="1" preferred="false"
                    apiLink="http://wordpress.com/xmlrpc.php" />
             </apis>
           </service>
         </rsd>
      

you can see how the WordPress blog is advertising itself as having support for four blog APIs: WordPress, Movable Type, Metablog, and Blogger.

Similarly, for Blogger blogs such as http://googleblog.blogspot.com/, you’ll get the following:

         <link rel="EditURI" type="application/rsd+xml" title="RSD"
               href="http://www.blogger.com/rsd.g?blogID=10861780" />
      

And http://www.blogger.com/rsd.g?blogID=10861780 shows support for one API, the Blogger API:

         <api name="Blogger" preferred="true" apiLink="http://www.blogger.com/api"
              blogID="10861780"/>
      

Like feed autodiscovery, RSD functions as a reasonably well-­implemented de facto standard without much formalization.