Search code examples
rest

Proper REST formatted URL with date ranges


I have a REST URL to get all users formatted like this: http://example.com/users

To get an individual user by id: http://example.com/users/12345

To get all user's bids: http://example.com/users/12345/bids

To get all user's bids between two dates: http://example.com/users/12345/bids/?start=01/01/2012&end=01/31/2012

or should it be like this: http://example.com/users/12345/bids/start/01012012/end/01312012

I'm leaning towards the 1st date range URL as start and end are not entities in the domain. What is the proper way to format a REST URL with a date range?

Thanks,

Tom


Solution

  • http://example.com/users/12345/bids?start=01-01-2012&end=01-31-2012

    Have the query parameters on the same "level" as the bids (remove the slash before the question mark). But you would probably want to have support for if they only provide one query parameter. So if they only provided "start" then it would get all bids after that date, or if they only provided "end" it would get all bids before that date.

    The reasoning being that query parameters are good for GETting a subset of results from a GET request. They don't go on another level because the next level is usually one specific item with a unique identifier.