Cargar los correos electrónicos de un usuario en lotes
Ha creado una aplicación ASP.NET Core, la ha conectado a Microsoft 365 y ha mostrado los últimos 10 correos electrónicos del usuario mediante Microsoft Graph. Ahora vamos a ampliar la aplicación para que los usuarios puedan cargar sus correos electrónicos en lotes de 10.
Recuperar datos paginados mediante Microsoft Graph
Cuando se llama a una API de Microsoft Graph que devuelve una colección de datos, se recibe un subconjunto de los datos almacenados en Microsoft 365. Para comprobar si hay más datos para recuperar la aplicación, compruebe si la respuesta contiene un valor de solicitud de página siguiente. Se puede obtener acceso a este valor mediante la NextPageRequest
propiedad del objeto de respuesta, tal como se muestra en el GetNextLink()
método:
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;
}
La llamada a pagedMessages.NextPageRequest.GetHttpRequestMessage()
devuelve una dirección URL completa a la que puede llamar para recuperar la siguiente página de resultados. Todos los datos de configuración de la solicitud inicial se conservan, incluidas las propiedades que se van a recuperar, cómo ordenar los datos y cuántos elementos se van a obtener.
Para cargar el siguiente lote de datos, pase la dirección URL devuelta desde el GetNextLink()
método junto con laGraphServiceClient
instancia al UserMessagesCollectionRequest
objeto:
// Use the next page request URI value to get the page of messages
var messagesCollectionRequest = new UserMessagesCollectionRequest(nextPageLink, _graphServiceClient, null);
pagedMessages = await messagesCollectionRequest.GetAsync();
Después de recuperar la segunda página de resultados, puede ver si hay más datos disponibles llamando al GetNextLink()
método.
Precaución
Microsoft Graph sigue el estándar OData 4. Una parte del estándar es la capacidad de usar la combinación de parámetros $top
y $skip
(los métodos Top
y Skip
de Microsoft Graph SDK) para recuperar una página de datos específica. Esto no es posible cuando se trabaja con correos electrónicos porque una carpeta de correo electrónico puede contener otros datos aparte del correo electrónico, lo que podría afectar a la paginación. Por eso, al trabajar con correos electrónicos, siempre debe usar la técnica mostrada anteriormente para cargar más datos.
Siguientes pasos
Vamos a ampliar la aplicación para que permita a los usuarios cargar más correos electrónicos en lotes.