Augmenting RESTful routes to make it more informative

Everyone knows that the trend is RESTful design. The simplicity of REST
means that if makes it easier to create bigger and more complex object
models.

As a side effect, you have your RESTful routes/URLs, which reflect the
simplicity and consistency of the RESTful design. It is natural to model
your URLs after your objects, object hierarchies instead of actions (the
actions being the HTTP verbs).

RESTful route:
/events/3

However, sometimes there are specific routes that don’t really fit into
the
RESTful way of doing things but are useful nonetheless. For example:

/events/04/06/2007/3

This url adds a prefix date to the event/events. Besides allowing the
user
to list all of the events of a specific date, it is also very
informative.
Having this additional piece of information in a google search result
can
sometimes be a timesaver (you can be more certain that it is the event
you
are searching, since the one you went to also happened on this date).

I don’t know if this date could be re-factored into a resource. The way
I’m
doing this is customizing the default events resource RESTful route to
have
this prefix.

Do you have such custom URLs in your app? Would you mind sharing your
thoughts and experiences?

Thanks in advance,

Marcelo

On Jul 30, 1:59 pm, “Marcelo de Moraes S.” [email protected]
wrote:

Having this additional piece of information in a google search result can
Thanks in advance,

Marcelo

I think the only issue here is the use of forward slashes in the url.
If you could do this instead:

/events/04-06-2008

then this would work with the default map.resources behavior, and be
easily consumable by your show or index actions:

you should actually sanitize your input first, of course

@event = Event.find_by_date(Date.parse(params[:id]))

or

@events = Event.find_all_by_date(Date.parse(params[:id]))

Hope this helps?

Jeff

Come to REST with Rails, Oct 4, 2008 in Austin, TX:
http://www.purpleworkshops.com/workshops/rest-and-web-services

softiesonrails.com - blog
purpleworkshops.com - training
pragprog.com/titles/cerailn - Upcoming book, Rails for .NET Developers