Stian Soiland wrote:

On 5 Jun 2007, at 06:51, Jim Alateras wrote:

I guess its personal preference but I feel it is more readable, expressive and consistent using the query string since in most cases the result set will be constrained by a date range and some other resource property like 'make'

/cars/registered/2003-03-03/2005-05-50?make=holden

I am not so sure of this.. in particular using /2003-03-03/2005-05-50 as it implies an hierarchy where there is something at /2003-03-03. If you go for this approach, use "," to separate the two dates as they are tied together in the range. (or ";", but mr. "RESTful web services" recommend ";" as separation when the order doesn't matter, and "," when they do
do you have a reference for this.

matter. The ISO-8601 standard for a date range is to use a / as separation, so with that justification using / might be OK! :-) )
so use commas for range expression and semi-colons for a matching against a set of values.

registrationDate=fromDate,toDate
make=holden;toyota;ford

I kind of like this.



Also, /registered implies kind of that some cars are registered (hence in /cars/registered) and some are not. If that's true, then fine, but otherwise it looks a bit weird to me.


/cars?make=holden&registeredDate!From=blah&registeredDate!To=blah

If as Adam suggests you have /car/{make}/{model}/{year}/

you can do /cars/holden?registered.from=2003-03-03&registered.to=2005-05-30

which makes sense because then /cars/holden will give you all Holden cars, right? (or at least a range of them)


if you don't care about the make and want anything registered until today since 2003-03-03:

/cars?registered.from=2003-03-03



(I would prefer using . instead of ! or $ which looks too much perl-ish to my eyes :-) - although one could argue that dot should rather be used for subproperties, like ?make.producer.country=USA - I don't want to think about writing a general support for such, although as a client it would be really cool! :) )

yep, i use '.' for sub-properties.



If you are using from/to as terms, it might be clever to do the range inclusive on both sides, ie. cars registered 2003-03-03 00:00:00 and 2005-05-30 23:59:61 are both included, while the cars at 2003-03-02 23:59:61 and 2005-05-31 00:00:00 are not, I believe that's what most people would expect.
it does become a little long winded when it comes to supporting a '> and <' expression on some property types.

cheers
</jima>

Reply via email to