Получить события без даты начала и окончания - PullRequest
1 голос
/ 08 апреля 2019

В Microsoft Graph Calendar API Я могу получить все события с помощью URL-адреса запроса:

/me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}

Но мне нужно указать дату начала и окончания,Есть ли способ просто получить все события без указания даты?

Просто оставив даты в запросе, я получаю ошибку, что эти параметры отсутствуют.

1 Ответ

1 голос
/ 08 апреля 2019

Конечная точка /calendarView предназначена для предоставления вам визуализированного представления календаря для заданного диапазона дат. Без диапазона дат API пришлось бы отображать каждое событие в календаре, возможно, в течение десятилетий. Вычислительные затраты на выполнение этого могут быть чрезмерно высокими, не говоря уже о негативном влиянии, которое это окажет на производительность в масштабе.

Если вам просто нужны необработанные базовые event объекты, вы можете использовать конечную точку /events. Это даст вам постраничные результаты, содержащие каждое событие в этом календаре. Вам потребуется выполнить некоторую постобработку, чтобы отобразить отдельные экземпляры для повторяющихся событий на основе главного события (то есть событий с "eventType": "seriesMaster").

В общем, я бы порекомендовал использовать /calendarView, поскольку он обрабатывает для вас экземпляры серии. Вы можете эффективно имитировать извлечение «всего», передавая ему достаточно большое окно, хотя и с потерей производительности.

Для иллюстрации, вызов следующего URI в Обозреватель графиков возвращает полное десятилетие (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 мс).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...