Microsoft Graph过滤器与$ filter

时间:2018-04-03 14:55:00

标签: microsoft-graph

我正在使用Microsoft Graph Explorer测试过滤。我注意到一些我无法弄清楚的奇怪行为。

使用端点https://graph.microsoft.com/v1.0/me/events?filter=start/dateTime%20ge%20%272018-04-01%27我得到了正确的过滤数据。

但是,使用记录的$前缀https://graph.microsoft.com/v1.0/me/events?$filter=start/dateTime%20ge%20%272018-04-01%27,我什么也得不到。没有错误,只是没有数据回来。

如何使用$filter查询数据?

1 个答案:

答案 0 :(得分:1)

你实际上并没有得到你认为的结果。当Microsoft Graph看到它不期望的查询参数时,它只是忽略它。

当您致电/events?filter=start/dateTime ge '2018-04-01'时,它只是忽略未知的filter参数,并返回未经过滤的结果。

当您致电/events?filter=start/dateTime ge '2018-04-01'时,它会在2018年4月1日之前过滤掉任何内容。如果在此日期之后没有start的事件,您将获得一个空数组。

我假设您正在使用Graph Explorer中包含的默认数据集?默认的Graph Explorer数据集的最新event2017-11-16T08:00:00.0000000

您看到来自/calendarView端点而不是/events端点的结果的原因是/events仅返回单个实例会议和系列主控,而/celandarView显示所有内容日期范围。为了避免必须维护具有更新事件的数据集,演示数据依赖于少数重复的event条目。

由于events不会返回会议的单个匹配项,因此您不会在查询中看到任何结果。

如果您尝试此查询,则会看到实际结果:

https://graph.microsoft.com/v1.0/me/events?$filter=start/dateTime ge '2017-04-01'