我有一个我正在开发的应用程序,它基本上从 Active Collab 中获取数据并从数据中创建报告/图表。API 本身不足以在每个请求的基础上获取正确的数据,因此我求助于将数据下拉到可以更有效地查询的单独数据集中。
因此,为了避免需要不断地查询整个 API,我决定使用 webhook 来对相关数据进行转换并降低重新同步数据的需要。
但是我注意到并非所有事件都已发送,尤其是以下事件。
TaskListUpdated
MemberUpdated
TimeRecordUpdated
ProjectUpdated
可能还有更多,但这些是我目前注意到的主要内容,
时间报告可能是最重要的,事实上它从 webhook 中丢失意味着几乎任何应用程序如果需要时间记录数据,则很有可能出现不正确的数据。在时间记录中打错字然后再调整是很常见的。
那么我在这里错过了什么吗?有什么方法可以可靠地查看这些事件吗?
编辑: 为了避免对 Ilija 发表冗长的评论,我将大部分内容放在这里。
Webhooks 分开,你需要拉什么信息?支持时间跟踪报告的 API 可以执行各种跨项目过滤,因此您保留单独数据库的方法可能是矫枉过正。
基本上,我们正在做一个多变量分层时间报告。它可以通过您可能想要查看的任何可能的方法进行排序/分组。
http://www.appsmagnet.com/product/time-reports-plus/
这是最接近我们正在尝试做的事情,当我们使用 Active Collab 4 时,它完成了这项工作,但即使有了它,我们也必须将它整合到我们自己的电子表格中。
所以这样做的想法是更好地将我们的 Active Collab 数据集成到我们自己的工作流程中。
所以我们在这种情况下寻找的主要数据是
Job Types
Projects
Task Lists
Tasks
Time Records
Categories
Members / Clients
Companies
这些项目不仅可以为我们的报告提供信息,还可以为我们公司的许多其他方面提供信息。对我们来说,Active Collab 是事实,因此我们希望数据可以快速访问并完全可查询。
所以我建立了一个同步系统,它最初可以从 Active Collab 中抓取所有数据,然后混合使用 cron 和 webhook 来保持最新状态。
Cron 作业适用于没有“子项”(项目/任务/任务列表/时间记录)的所有方面。所以我需要依赖 webhook,因为同步它们需要很长时间才能使其实时更新。
对于 webhook,我注意到上述内容没有通过。时间记录我想出了一个解决方法,列在我的答案中,并且成员可以通过 cron 完成。然而,任务列表和项目更新是唯一值得关注的两个。项目相当重要,因为预算可以更改并且将用于报告中,任务列表具有也可以使用的开始/结束日期。由于不断检查每个项目/任务列表以查看是否有更改确实不是一个好主意,我正在寻找一种可靠地查看更新的方法。
我基于https://developers.activecollab.com/api-documentation/建立了这个系统,但我知道至少有几个端点没有列出。
使用 Active Collab 5 API 的跨项目时间记录过滤
这个问题实际上来自同一系统上的另一个开发人员(并且还显示了TrackingFilter
文档中未列出的报告)。由于维护一组准确数据的问题,我们不得不对其进行调整。我实际上注意到您(Ilija)是回复的人,并且确实建议我们改用这种系统。