[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

We don't need RSD




There were too many levels of indirection in the editing API draft 6. The chain looked like:


1. read HTML, find LINK tag to RSD
2. read RSD, find url of introspection file
3. read introspection file

I was one of the earliest advocates of this approach:
http://www.intertwingly.net/wiki/pie/AutoDiscovery?action=highlight&value=rsd

Since then, it has been pointed out repeatedly, both publicly and privately, that this was too much indirection. Here are some of the public references:

Aaron Swartz on RestEchoApiDiscuss complained early on that there was too much indirection:
http://www.intertwingly.net/wiki/pie/RestEchoApiDiscuss?action=highlight&value=rsd


Dare Obasanjo on his own weblog says that "one of these steps is unnecessary":
http://www.kuro5hin.org/story/2003/8/3/133458/0512


James Aylett on AggregatorApi warned against modeling that API too closely on the early drafts of the editing API, because "there are concerns already that the discovery --> rsd --> introspection --> API entry is somewhat too verbose as it is".
http://www.intertwingly.net/wiki/pie/AggregatorApi?action=highlight&value=rsd


I have also spoken with Joe directly on this issue (in person, while he was installing an automatic fern watering system on my front porch -- I am not in any way making this up).

As a result of these discussions, I now agree that RSD is unnecessary. This is a change from my original position, and as soon as this message hits the mailing list's web archive, I will update my previous position on AutoDiscovery to point to it.

Furthermore, the claims from client vendors that "we should stick with RSD because we can already parse it" are specious at best. You *will* need to write code to parse the introspection file in any case; the information it contains can not simply be shoved into an RSD file, and even if it could, you would have to write additional code above and beyond your existing code to parse it. It's just a lot more information than you get with other APIs; all of it is justified in the spec and you need to parse it one way or the other. Meanwhile, you've already written the code to look for arbitrary LINK tags in HTML, since you're doing that already to find the RSD. Finding the LINK tag that points to the introspection file is what, one more line of code? You've already spent more time arguing about it than it would take to code it.

-Mark