以Restful方式传递日期参数的最佳方法?

时间:2014-02-19 13:59:32

标签: rest date restful-architecture

我正在构建一个Restful API,在某些情况下,它接受一个Date作为列表的参数。

例如,我有url / api / members /,我们可以使用created日期参数进行过滤。

现在,我想以多种方式接受这个日期:

  • 在给定日期之前(或等于)
  • 在给定日期之后(或等于)
  • 等于给定日期
  • 在两个给定日期之间

这是我提出的解决方案,我想知道这是否合适或是否有更好的选择:

创建的参数将接受日期作为字符串(Iso 8601标准,YYYY-MM-DD hh:mm:ss)值。此参数可以添加以下值:

  

,<,< =,> =,=(默认情况下,如果没有提及)。

通过执行此操作,用户可以通过执行以下操作来请求在特定日期之前创建的成员列表:

?created=%3C2014-02-19 # (<)
?created=%3C%3D2014-02-19 15:00:00 # (<=)
?created=%3E2014-02-19 14:00:00 # (>)
?created=%3E%3D2014-02-18 # (>=)
?created=%3D2014-02-19 # =
?created=2014-02-19 # This is EXACTLY the same as the previous one.

使用查询的JSON表示(您在jQuery.ajax中作为data传递的内容):

{'created': '<2014-02-19'}
{'created': '<=2014-02-19 15:00:00'}
{'created': '>2014-02-19 14:00:00'}
{'created': '>=2014-02-18'}
{'created': '=2014-02-19'}
{'created': '2014-02-19'} # This is EXACTLY the same as the previous one.

对于“之间”两个日期,created也可以接受两个值,在这种情况下,不会接受前缀后缀,例如:

?created[]=2014-02-01&created[]=2014-02-28

再次,作为jQuery.ajax参数:

{'created': [2014-02-01, 2014-02-28]}

您对此实施有何看法?

0 个答案:

没有答案