【问题标题】:Microsoft graph, batch request's nextLinkMicrosoft graph,批处理请求的 nextLink
【发布时间】:2019-07-19 20:33:54
【问题描述】:

我目前正在实施同步队列服务,以将 Web 应用的客户同步到 Outlook 的联系人。

我正在使用 Graph API 来完成这项工作。联系人的创建和更新是使用图的批处理请求完成的。

文档中有一部分关于我不完全理解并且几乎被忽略的响应。我只是想确保我的实现是正确的。

除了responses属性,可能还有一个nextLink 批处理响应中的属性。这允许 Microsoft Graph 返回 任何单个请求一有一个批处理响应 完全的。为确保收到所有个人回复, 只要 nextLink 存在,就继续关注它。

我想知道以下几点:

  1. nextLink 什么时候出现?我尝试发送不同的请求,但从未收到。从文档中看不太清楚,但我的猜测是,由于某种原因,批处理中的某些请求没有及时完成?

  2. 待处理的请求会在响应中显示为错误,还是只是在响应中丢失?

  3. nextLink 是否会像分页请求中那样采用@odata.nextLink 的形式?它没有在文档中指定。

  4. 当/如果它确实出现时我应该如何处理它?我可以放心地忽略它,只指望下一次服务调用(每 15 分钟)来重试和同步待处理的请求吗?

【问题讨论】:

    标签: node.js rest cron queue microsoft-graph-api


    【解决方案1】:

    分页机制主要适用于向 Graph 查询数据时。

    1. 如果您作为批处理请求之一的任何查询需要分页(就像您直接运行请求一样),则会显示 nextLink。例如,如果目标用户拥有超过 10 个文件夹,则作为批处理作业一部分的此请求会导致出现一个:

    { "id":"1", "method":"GET", "url":"users/user@domain.tld/mailFolders" }

    1. 响应正常显示(响应正文中包含第一页数据,以及用于访问下一页的 nextLink)。
    2. 正确。在上面的示例中,nextLink 显示如下: "@odata.nextLink":"https://graph.microsoft.com/beta/users/user@domain.tld/mailFolders?$skip=10
    3. 您需要按照 nextLink 获取其余数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      相关资源
      最近更新 更多