【问题标题】:Pagination example for greater than 2000 Records in AtTask APIAtTask API 中超过 2000 条记录的分页示例
【发布时间】:2014-12-23 00:01:36
【问题描述】:

在 AtTask API 调用中,当我需要返回超过 2000 条记录时,如何使用分页?
例如,鉴于https://developers.attask.com/api-docs/#Basics 的开发者网站的以下内容,我看到以下内容

分页响应

要覆盖默认结果数并将响应设置为提供 200 个结果,您可以在查询中包含以下内容:

GET /attask/api/project/search?$$LIMIT=200

为确保系统中其他租户的可靠性和性能,每个查询的最大允许限制为 2000 个对象。尝试指定更大的限制将导致错误。

因此,建议您考虑对大型数据集使用分页响应。要指定应返回的第一个结果,可以添加 $$FIRST 过滤器。以下将返回查询的结果 201-250。

GET /attask/api/project/search?$$FIRST=201&$$LIMIT=50

我不明白的是如何首先弄清楚我有多少。如果我想下载系统中的小时数,我怎么知道我必须调用多少次(是否有count(*))或类似的方法?我是否只是要获得第一个 2k,处理,尝试获得下一个 2k,如果不为空则处理?冲洗并重复?

【问题讨论】:

    标签: java pagination attask


    【解决方案1】:

    由于最初的搜索只会提取 2000 个结果,因此您必须迭代并提取下一个 2000 个结果,直到没有结果为止。

    【讨论】:

    • 我们还可以检查当前响应是否包含小于 2000 的对象然后停止迭代。因为它表明没有更多的数据。
    【解决方案2】:

    您可以使用报告调用来获取项目的总数。因此,在您的示例中,要获取系统中的小时对象数(不是总小时数),您可以执行以下操作:

    /attask/api/HOUR/report?ID_AggFunc=count
    

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2012-07-28
      • 2021-02-23
      • 2022-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多