你如何RESTful获得一个复杂的记录子集?

时间:2012-10-03 11:26:57

标签: algorithm web-services rest

我有一个问题是从RESTful服务中获取“随机”可用内容块,而不重复客户端已经缓存的内容。我怎么能以RESTful方式做到这一点?

我正在提供大量商品(带文字和网址的小文章)。我们假装它是: / API /条/

我的(软件)客户希望随机获取可用内容。将它们全部加载到客户端上的次数太多了。他们没有自然的秩序,所以不是他们可以要求最新的情况。相反,客户可以提供大约6-10个属性来“暗示”他们希望看到哪种类型的文章(例如流行的,近期的,趋势的...)。

随着时间的推移,客户会获得越来越多的内容,但是在服务器上我不知道他们已经拥有什么,并且因为它们是随机发送的,所以我不能只传递他们拥有的“最新”内容。

我可以想象地发送了本地存储内容的GUIDS。客户只在本地存储50-100。这个小到足以填入POST变量,但不能填入GET查询字符串。

设计这个的干净方法是什么?

关键点:

  • 数据没有逻辑顺序
  • 客户端必须在本地缓存内容
  • 每个项目都有一个GUID
  • 希望避免重复删除

1 个答案:

答案 0 :(得分:2)

如果数据真正按随机顺序保存,那么您永远无法令人满意地工作(请记住Dilbert RNG Effect);您需要修复特定客户的订单,以便他们可以正确浏览。虽然这很容易做到;只是让特定的顺序成为资源本身;在那一点上,你有一个自然的(如果可能合成的)排序,可以使用普通的分页技术。

要注意的主要事项是,当您执行初始查询时,您将创建一个响应GET的资源:您可能应该使用资源名称作为查询参数的哈希值(包括客户端的身份(如果这很重要),这样如果有人连续两次执行相同的查询,他们将获得相同的资源(因此保留适当的幂等性)。您可以在一些超时后删除资源,而不是需要手动处理......