分页游标应该包含编码的查询参数吗?

时间:2019-01-28 03:35:52

标签: pagination cursor

最近,我淹没在有关用于分页的游标指定的两种思想中:

  1. 光标仅包含其位置(例如最后一个项目ID,最后一个创建于...)。

    因此服务器可以提供游标和查询参数的任意组合。

    例如:

    • 第一个查询:?queryParam=X&cursor=,服务器返回cursor=C1
    • 第二个查询:?queryParam=Y&cursor=C1,服务器仍然能够使用新的查询参数来处理此查询(即使cursor=C1与查询参数X关联了)
  2. 光标包含原始查询参数。指定游标时,将忽略其他查询参数。

    也就是说,如果查询参数不兼容的查询<->游标对,则服务器可能会忽略查询参数甚至响应错误

    • 第一个查询:?queryParam=X&cursor=,服务器以cursor=C1进行响应,该编码为queryParam=X
    • 第二个查询:?queryParam=Y&cursor=C1,服务器从queryParam=X中提取cursor=C1,并从请求中忽略queryParam=Y

那么考虑到以上两个选项,设计游标的首选方法是什么?

我上次检查时,Google API(特别是Gmail API :: list邮件)使用第一种方法。

0 个答案:

没有答案