【问题标题】:How to go backward from last page result in Azure Graph API result如何从 Azure Graph API 结果中的最后一页结果返回
【发布时间】:2016-04-06 11:58:20
【问题描述】:

我正在努力从 azure 活动目录中获取用户,并在支持分页的网格中显示结果。

我已参考this 文档进行分页。

但是当我查询天蓝色的活动目录时,我没有在图形 API 的最后一个请求结果中获得 skiptoken。请考虑以下示例

在我的 azure 活动目录中,当我使用过滤器 top=10 查询用户 10 乘以 10 时,我有 100 个用户,我收到 skiptoken 最多第 9 个请求,但对于最后一个请求(第 10 个)我不是得到任何skiptoken,我无法从第 10 页再次回到第 9 页。

当我使用从第 9 个请求获得的 skiptoken 和 top=10 时,我可以转到第 10 页结果,但是当我使用相同的 skiptoken 时(因为我在最后一个请求中没有任何 skiptoken ) 使用previous-page=true,我得到了第 8 页的结果。

如何从第 10 页(最后一页)得到第 9 页的结果?

【问题讨论】:

  • 我遇到了同样的错误,没有得到带有最后一页结果的skiptoken。你没有产生幻觉!他们可能已经用 MS Graph 修复了它?
  • 刚刚确认 MS Graph 也会发生这种情况。将此复制到Graph Explorer:graph.microsoft.com/v1.0/…
  • 如果最后一页的结果数与 $top 参数匹配,则返回跳过标记。导航到该跳过标记会返回一个空结果...没有跳过标记!
  • 我在 2020 年仍然遇到同样的错误。我能想到的唯一解决方案是存储最后 2 个 skiptoken-s,如果是最后一页,请使用前一个。

标签: azure azure-active-directory azure-ad-graph-api


【解决方案1】:

我自己刚刚尝试过,似乎无法重现您遇到的相同问题。

我只能在这个阶段建议您尝试进一步调试您的代码,以确保您正确使用 skiptoken 参数。此阶段的另一个建议是使用Graph Explorer 测试您的查询,我也尝试过,它似乎与可用的演示租户按预期工作。

【讨论】:

  • 即使在 Graph explorer 上我也能重现这个问题。
  • 有趣,您能分享您发送的查询吗?还要确认这是否针对您的租户或演示公司?
  • 只需使用下面的链接来测试演示公司的 50 个结果的分页,它有 128 个用户here。您可以转到 51 到 100 和 100 到 128,但您无法使用 previous-page=true fiter 获得从 100 到 51 的结果
  • 好的,所以我刚刚使用skiptoken 到达结果的最后一页,然后在最后一页上我附加到 URL &previous-page=true。格式化的 URL 很长,但它肯定对我有用。这是没有令牌的 URL:graph.windows.net/graphdir1.onmicrosoft.com/…
  • 是的,我也得到了结果,但它实际上是 0 到 50 而不是 51 到 100 的结果,只有我在这里提到。你能在最后的结果中看到skiptoken 吗?
猜你喜欢
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
相关资源
最近更新 更多