【问题标题】:Office 365 Graph API $top not being honoured on delta queriesOffice 365 Graph API $top 未在增量查询中得到认可
【发布时间】:2017-09-05 12:16:34
【问题描述】:

Office 365 Graph API 文档建议在增量查询中一起使用时应支持 $filter 和 $top 操作...

https://developer.microsoft.com/en-us/graph/docs/concepts/delta_query_messages#track-message-changes-in-a-folder

但是,当执行同时使用 $filter 和 $top 的查询时,例如:

https://graph.microsoft.com/beta/me/mailfolders/AAMkADQ3MDg1NWRmLTUxMGQtNDRiMi1iMGE4LTAzMzdjNGRiYTIxNQAuAAAAAADEPuholyn_QpUTcq2qMEH4AQBScDrPb_rMTZOocc5vRCTLAAAAAAEMAAA=/messages/delta?$filter=receivedDateTime%20ge%202017-04-01T00:00:00Z&$top=1000

我们发现没有应用 $top 值,而是使用了每页 10 个结果的默认值。但是 $filter 已正确应用。

在没有 $filter 语句的情况下进行测试时,我们发现 $top 值按预期应用。

这是 Graph API 中的错误还是我误解了什么?提前致谢。

【问题讨论】:

  • 我主要担心 $filter 中的“值”可能不会被转义,或者可能存在其他转义问题。您可以发布原始请求吗?即使包含 $top,$filter 是否也能正常工作?
  • 我已更新我的原始帖子以包含原始请求 URL。 $filter 工作正常,只是 $top 值没有被应用。
  • 我想知道 $top=999 是否可以解决问题。文档在这个问题上有点令人困惑,但 999 似乎是一个神奇的数字。
  • 仍然没有运气 - 我已经尝试了 $top=999,但每页仍然只能返回 10 个项目

标签: office365 microsoft-graph-api office365api


【解决方案1】:

我无法使用带有 delta 的 $top 参数获得输出。

但同一个文档中提到的可选odata.maxpagesize 标头似乎正在工作。

您可以尝试将其添加到您的请求标头中。喜欢:

odata.maxpagesize=1000

【讨论】:

  • 感谢您的建议,但运气不好,我很害怕。我试过使用这个标题,它对页面大小没有影响。
【解决方案2】:

在 /messages/delta 上也遇到了 $top 问题。不仅不起作用,还发现$top实际上破坏了/messages/delta。如果在其中包含 1000 条消息的文件夹上使用 $top,则 /messages/delta 将返回 10 条带有跳过标记的消息。将该跳过令牌传回,您将收到 0 条带有 delta 令牌的消息。将该 delta 令牌传回,您将再次收到 0 条消息。去掉原始调用中的 $top,您将能够对所有 1000 条消息进行分页。似乎 $top 没有指定要返回多少响应,而是指定 API 在列表中的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多