Cargar los correos electrónicos de un usuario en lotes
Ha creado una aplicación de JavaScript, la ha conectado a Microsoft 365 y ha mostrado los últimos 10 correos electrónicos del usuario mediante Microsoft Graph. Ahora ampliaremos la aplicación para que los usuarios puedan cargar sus correos electrónicos en lotes de 10 elementos.
Recuperar datos paginados mediante Microsoft Graph
Al llamar a una API de Microsoft Graph que devuelve un conjunto de datos, como la API de mensajes que usó anteriormente, recibirá un subconjunto de los datos almacenados en Microsoft 365. Para comprobar si hay más datos que la aplicación pueda recuperar, comprueba si la respuesta contiene la propiedad @odata.nextLink
.
var emails = graphClient
.api('/me/messages')
.select('subject,receivedDateTime')
.orderby('receivedDateTime desc')
.top(10)
.get();
if (emails['@odata.nextLink']) {
// more data available
}
La propiedad @odata.nextLink
contiene una dirección URL completa a la que puede llamar para recuperar la segunda página de resultados. Esta dirección URL conserva toda la configuración de la solicitud inicial, como qué propiedades recuperar, cómo ordenar los datos y cuántos elementos se obtendrán.
Para cargar el siguiente lote de datos, pase la dirección URL devuelta en @odata.nextLink
a graphClient
:
var emails = graphClient
.api('/me/messages')
.select('subject,receivedDateTime')
.orderby('receivedDateTime desc')
.top(10)
.get();
if (emails['@odata.nextLink']) {
var moreEmails = graphClient
.api(emails['@odata.nextLink'])
.get();
}
Después de recuperar la segunda página de resultados, puede ver si hay más datos disponibles comprobando si los resultados tienen establecida la propiedad @odata.nextLink
.
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. Este es el motivo por el que, al trabajar con correos electrónicos, siempre debe usar el valor @odata.nextLink
para cargar más datos.
Siguientes pasos
Ampliaremos la aplicación para que permita a los usuarios cargar más correos electrónicos en lotes.