[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