正确的REST格式的URL与date范围

我有一个REST URL来获取所有格式化的用户: http : //example.com/users

要通过id获取个人用户: http : //example.com/users/12345

要获取所有用户的出价: http : //example.com/users/12345/bids

要在两个date之间获得所有用户的出价,请执行以下操作: http : //example.com/users/12345/bids/?start=01/01/2012&end=01/31/2012

或者应该是这样的: http : //example.com/users/12345/bids/start/01012012/end/01312012

我倾向于第一个date范围url,因为开始和结束不是域中的实体。 使用date范围格式化RESTurl的正确方法是什么?

谢谢,

汤姆

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

将查询参数设置为与出价相同的“级别”(删除问号前的斜杠)。 但是,如果他们只提供一个查询参数,你可能会希望得到支持。 因此,如果他们只提供“开始”,那么在该date之后将获得所有出价,或者如果他们仅提供“结束”,则在该date之前将获得所有出价。

理由是查询参数对GET GET请求的一部分结果是有好处的。 因为下一个级别通常是一个具有唯一标识符的特定项目,所以他们不会进入另一个级别。

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

  • 在查询string之前不应该有斜杠。
  • 避免在查询string中使用斜杠。 这样会更容易

如果exam​​ple.com/users/12345获取id为12345的用户,那么通过id获取所有用户,它应该是example.com/users,其中id包含在响应中作为关系。 (通常是指向该资源的超链接)。

现在按照date范围来获取它们应该是example.com/users/start=01-01-2012&end=01-31-2012

12345部分是个人用户的ID,这是一个资源,因此不应该包含在其他用户中。

作为参数的名称应该是有意义的。 开始可能意味着什么,但start_date更有意思。