< Previous
Next >

You're All Resources!: RWS reader Scott writes, apropos Chapter 7's remake of the del.icio.us web service as a set of RESTful resources:

"Why is the recent list of bookmarks a resource? Why isn't "recent" a filter on the resource bookmarks?"

I couldn't figure out how to post a comment on Scott's weblog, so it goes here. The short answer is that it's both. "Resource" is the HTTP-level term, and "bookmark filter" is an end-user-level description of the resource.

It's legitimate and often useful to talk about /recent as a filter on the bookmarks, but that's an abstraction. All /recent is, is a URI that gives you something when you GET it. You might link to /recent, retrieve or cache a representation of it, etc. etc. It names a resource. Calling it a filter on the bookmark list is on the same level as calling it a list of recent bookmarks. It's accurate but not very precise: you're using high-level terms instead of well-defined terms like "resource". Resources are defined as part of HTTP and filters aren't.

Scott again:

How is "recent" bookmarks any different than "bookmarks for the last 10 days" or bookmarks since "9/10/2007"? I don't think anyone would argue that the last two aren't filters. But "recent" isn't any different then either of those two.

They're exactly the same. They're all resources. In chapter 7 when I mention features like date filters, I describe them in terms of end-user functionality so I use end-user-level terms like "filter", but on the level of HTTP analysis, /users/leonardr/bookmarks/?date=2007-06-01 or whatever points to a resource.

Hope this helps.

Filed under:

[Main] [Edit]

Unless otherwise noted, all content licensed by Leonard Richardson
under a Creative Commons License.