我正在使用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
查询数据?
答案 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数据集的最新event
为2017-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'