【问题标题】:Unable to retrieve unlimited number of record via API无法通过 API 检索无限数量的记录
【发布时间】:2016-10-03 07:41:05
【问题描述】:

我们正在努力通过 API 挖掘今年的所有时间记录。

我们已尝试包含 :dont_limit_result GET 变量并将其设置为 1,但这对我们没有帮助。

我们使用的版本是 ACTIVE COLLAB 5.11.0,我们点击的 URL:projects?dont_limit_result=1&page=$page

请给我一些关于如何进行的建议。

【问题讨论】:

  • 您使用的是哪个版本的 Active Collab? Active Collab 5 不支持该论点,而 v4 支持,因此版本号在这里是相关的。另外,请告诉我您通过请求访问哪个 API URL。请更新您的问题,我们会尽快答复。
  • 我们使用的版本是 ACTIVE COLLAB 5.11.0,我们点击的 URL:projects?dont_limit_result=1&page=$page
  • 已发布答案。如果有帮助,请接受答案,以便 SO 的其他访问者知道这是一个正确的答案(或建议如何改进答案)。
  • 两个 curl 命令都返回空数组 "[]" 尝试使用 curl 也使用 php api

标签: activecollab


【解决方案1】:

大多数 API 响应都是分页的,并且不能使用 GET 开关关闭分页。相反,您应该检查以下标题:

  • X-Angie-PaginationCurrentPage - 表示当前页面
  • X-Angie-PaginationItemsPerPage - 表示每页的项目数
  • X-Angie-PaginationTotalItems - 表示整个数据集中的项目数。

并遍历页面,直到到达数据集的末尾。

另一种选择是尝试使用项目的过滤器。这是一个返回所有项目的示例请求:

curl -H "X-Angie-AuthApiToken: YOUR-API-TOKEN" "http://your.activecollab.com/api/v1/reports/run?type=ProjectsFilter"

这个会返回所有活跃的项目:

curl -H "X-Angie-AuthApiToken: YOUR-API-TOKEN" "http://your.activecollab.com/api/v1/reports/run?type=ProjectsFilter&completed_on_filter=is_not_set"

【讨论】:

  • 两个 curl 命令都返回空数组 "[]" 尝试使用 curl 也使用 php api
【解决方案2】:

我正在使用 php API wrapper 3.0 - 我如何获取标题以了解还有更多页面,然后获取更多页面的正确查询形式是什么?

例如我的基本查询是:

$timeRecords = $client->get('projects/22/time-records')->getJson();

获取时间记录 - 但这只返回 100 并且还有更多!

谢谢,

P

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多