具有日期范围的正确REST格式的URL

Tho*_*ler 57 rest

我有一个REST URL,可以让所有用户的格式如下:http: //example.com/users

要按ID获取个人用户:http: //example.com/users/12345

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

要在两个日期之间获取所有用户的出价:http: //example.com/users/12345/bids/?start = 01/01/2012&end = 01/31/2012

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

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

谢谢,

汤姆

smc*_*mcg 61

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

使查询参数与出价处于同一"级别"(删除问号前的斜杠).但是如果他们只提供一个查询参数,你可能希望得到支持.因此,如果他们只提供"开始",那么它将在该日期之后获得所有出价,或者如果他们仅提供"结束",则它将在该日期之前获得所有出价.

原因是查询参数适用于从GET请求中获取结果的子集.它们不会进入另一个级别,因为下一级通常是一个具有唯一标识符的特定项目.


whi*_*win 8

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

  • 查询字符串之前不应该有斜杠.
  • 避免在查询字符串中使用斜杠.这样会更容易.

  • 那么人们应该也可以使用国际可读的日期格式,根据https://en.wikipedia.org/wiki/ISO_8601,它将是"2012-01-31"."MDY"实际上只是美国..... https://en.wikipedia.org/wiki/Date_format_by_country (4认同)