【问题标题】:Listing all Asana workspace tasks列出所有 Asana 工作区任务
【发布时间】:2023-04-09 18:27:01
【问题描述】:

Asana API 提供对存储在 Asana 工作区中的数据的访问。获取工作区中所有任务列表的最佳方法是什么?

可以找到绑定到工作空间的项目和用户列表。然后收集每个单独项目的所有任务,以及分配给特定受让人的所有任务。合并所有集合将生成由使用的 API 令牌表示的用户可访问的任务集合。

如果所有 API 请求都是按顺序发送的 - 它是 2+users+projects 请求,那么对于更大的工作空间,该操作相当长。如果 API 请求是并行发送的,那么最多可以有 users+projects 并发请求。什么级别的并发 Asana API 端点仍会感到高兴?或者有什么推荐的方法?

【问题讨论】:

    标签: api rest concurrency


    【解决方案1】:

    感谢您的提问。

    获取工作区中所有任务的完整转储可能会生成大量数据(当您刚开始时,这将是非常易于管理的,但一旦您在工作区中积极工作了一段时间就不会了) .我们认为这是一个高级用例,要使其正常工作和扩展需要考虑很多因素,因此 API 尚未为此提供良好的机制(截至 2012 年 4 月 11 日)。

    我认为您可能需要此功能的主要原因是您希望将数据导出到其他工具,或将其与其他数据库同步。我们非常希望支持我们的开发人员将他们的数据放到他们需要的地方,并正在研究如何以这种方式最好地为您服务。提供导出功能是实现此目的的一种方法,但我们正在考虑使用其他功能,例如 WebHook 或同步 API,随着时间的推移,这些功能可能会变得更加有用和灵活。

    与此同时,虽然我们确实支持大量并行请求(任何受人尊敬的 REST API 都应该如此),但我们可能会施加速率限制,而此时您可能会看到的性能可能会使这种方法难以处理。它现在可能对你有用,但我不推荐它。 :) 当然,我们会将此需求优先于其他 API 请求,并在我们取得进展时随时通知您。

    【讨论】:

    • 确实,只有在工具第一次访问 Asana 帐户时才需要获取所有任务,以后的 WebHooks 应该足以让我的外部系统与所有 Asana 的任务保持同步。
    • 速率限制会是什么样子?那会是 5XX 响应代码,还是会延迟响应?
    • 我们不会发回 5xx 响应代码,尽管我们最终可能会这样做。无论哪种方式都有利有弊。
    【解决方案2】:

    认为更相关的用例是在所有工作区中显示今天的所有任务。

    用户旅程是跨工作区更新所有任务,然后实际执行任务而不必在多个工作区中,然后随着时间的推移进行更新......

    这可能吗?

    【讨论】:

    • 我建议您将问题作为单独的问题而不是作为答案发布。
    猜你喜欢
    • 2023-03-30
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    相关资源
    最近更新 更多