【问题标题】:Microsoft Graph: Is it safe to assume that plannerTask.id and plannerTaskDetails.id are always the same?Microsoft Graph:假设 plannerTask.id 和 plannerTaskDetails.id 始终相同是否安全?
【发布时间】:2019-10-12 15:29:31
【问题描述】:

在阅读Microsoft Graph documentation 时,我们遇到了两种相关的资源类型:

  1. plannerTask
  2. plannerTaskDetails

plannerTask 和 plannerTaskDetails 都有一个 id 属性,在这两种情况下都是 28 个字符且区分大小写,并由 Microsoft 负责验证。

在使用 Microsoft Graph 时,我注意到对于给定的任务,plannerTask.id === plannerTaskDetails.id。这是有道理的,因为不需要为 details 资源类型定义新的 id,因为这是一对一的关系,MS 可以简单地重新使用 plannerTask id。

然而,在文档中,id 似乎指的是不同的东西。我引用:

  • 对于 plannerTask:“任务的 ID
  • 对于 plannerTaskDetails:“任务 ID details

这似乎留下了plannerTask.id !== plannerTaskDetails.id的可能性。

我只是想知道,根据人们的经验,是否可以安全地假设我在上面注意到的内容,即两个 id 始终相同,因为使用 MS Graph 和阅读文档并不清楚。也许在 MS Planner 上工作的人可以解释一下。

【问题讨论】:

    标签: rest api microsoft-graph-api microsoft-teams microsoft-planner


    【解决方案1】:

    您不应该做出这样的假设。从 API 的角度来看,它们是不同的键。使用 Graph API,您实际上不需要在任何地方使用 Task details id,您始终可以将其称为 task abc 的详细信息。

    巧合的是,当前的 id 值相同,但我们正在积极研究一些需要它们不同的功能。如果你依赖它,你的应用就会崩溃。

    【讨论】:

      【解决方案2】:

      是的,但是如果您正在执行补丁调用,那么作为 Etag 的 If-Match 标头将会有所不同。因为虽然 task 和 task details 具有相同的 id,但它们是不同的对象。

      【讨论】:

      • 是的,我意识到 Etag 会有所不同。谢谢您的回答。你能告诉我你怎么知道答案是肯定的吗?这仅仅是因为大量使用它,即经验吗?
      • 它来自经验。我构建了多个应用程序,可在团队平台中自动执行各种计划任务和任务详细信息。假设他们是平等的,对我来说从来没有任何后果。我知道它们在未来可能会有所不同的风险,所以我也有一个备用计划。我在表中保存 id 的方式,我有一个 taskId 和 taskdetailsId 列。因此,即使更改了 ID,我也总是保存两者。现在和很长一段时间我相信,假设他们是平等的就可以了。
      猜你喜欢
      • 2011-02-27
      • 2010-09-19
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多