Пакетная загрузка сообщений электронной почты пользователя
Вы создали приложение ASP.NET Core, подключили его к Microsoft 365 и отобразили последние 10 сообщений электронной почты пользователя с помощью Microsoft Graph. Давайте теперь расширим приложение, чтобы пользователи могли загружать свои сообщения электронной почты пакетами из 10 элементов.
Извлечение страничных данных с помощью Microsoft Graph
При вызове API Microsoft Graph, который возвращает коллекцию данных, вы получаете подмножество данных, хранящихся в Microsoft 365. Чтобы узнать, есть ли дополнительные данные, которые может получить ваше приложение, проверьте, содержит ли отклик значение запроса следующей страницы. Это значение можно получить с помощью свойства NextPageRequest
объекта отклика, как показано в методе GetNextLink()
:
private string GetNextLink(IUserMessagesCollectionPage pagedMessages) {
if (pagedMessages.NextPageRequest != null)
{
// Get the URL for the next batch of records
return pagedMessages.NextPageRequest.GetHttpRequestMessage().RequestUri?.OriginalString;
}
return null;
}
Вызов к pagedMessages.NextPageRequest.GetHttpRequestMessage()
содержит полный URL-адрес, который можно вызвать для получения следующей страницы результатов. Все данные конфигурации из исходного запроса сохраняются, в том числе свойства, которые нужно получить, как сортировать данные и сколько элементов нужно получить.
Чтобы загрузить следующую партию данных, передайте URL-адрес, возвращенный из метода GetNextLink()
, вместе с экземпляром GraphServiceClient
в объект UserMessagesCollectionRequest
:
// Use the next page request URI value to get the page of messages
var messagesCollectionRequest = new UserMessagesCollectionRequest(nextPageLink, _graphServiceClient, null);
pagedMessages = await messagesCollectionRequest.GetAsync();
После получения второй страницы результатов вы можете узнать о наличии дополнительных данных путем вызова метода GetNextLink()
.
Предостережение
Microsoft Graph следует стандарту OData 4. Частью стандарта является возможность использовать сочетание параметров $top
и $skip
(методы Top
и Skip
в SDK Microsoft Graph) для получения определенной страницы данных. Это невозможно при работе с электронной почтой, так как папка электронной почты может содержать данные, отличные от сообщений электронной почты, которые могут изменить разбивку на страницы. Поэтому при работе с электронной почтой всегда следует использовать указанный выше метод для загрузки дополнительных данных.
Дальнейшие действия
Давайте расширим приложение так, чтобы пользователи с его помощью могли загружать больше сообщений электронной почты пакетами.