Конечная точка /calendarView
предназначена для предоставления визуализированного представления календаря для заданного диапазона дат. Без диапазона дат API-интерфейс должен был бы отображать каждое событие в календаре, возможно, за десятилетия. Вычислительные затраты на выполнение этого могут быть чрезмерно высокими, не говоря уже о негативном влиянии, которое это окажет на производительность в масштабе.
Если вам просто нужны необработанные базовые объекты event
, вы можете использовать _ 3_ конечная точка. Это даст вам результаты с разбивкой по страницам, содержащие каждое событие в этом календаре. Вам потребуется выполнить некоторую пост-обработку для визуализации отдельных экземпляров повторяющихся событий на основе главного события (т.е. событий с "eventType": "seriesMaster"
).
В общем, я бы рекомендовал использовать /calendarView
, поскольку он обрабатывает экземпляры серии за вас. Вы можете эффективно имитировать получение «всего», передав ему достаточно большое окно, хотя и с падением производительности.
Для иллюстрации вызов следующего URI в Graph Explorer возвращает события за полную декаду (2009-2019):
https://graph.microsoft.com/v1.0/me/calendarview?startdatetime=2009-01-01&enddatetime=2019-12-31
Стоит отметить, что для возврата результата потребовалось 6436 миллисекунд, а данные содержат только небольшое количество событий. Когда я запустил тот же запрос к моему календарю, мне потребовалось 13 883 миллисекунды. Так что чисто с точки зрения производительности я бы не рекомендовал регулярно выполнять запросы более 12 месяцев за раз (т.е. startdatetime=2018-01-01&enddatetime=2018-12-31
заняло 2795 мс).
person
Marc LaFleur
schedule
08.04.2019