我正在使用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
查询数据?
您实际上并没有得到自己认为自己的结果。当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'