Charger les e-mails d’un utilisateur par lots
Vous avez créé une application JavaScript, vous l’avez connectée à Microsoft 365 et affiché les 10 derniers e-mails de l’utilisateur à l’aide de Microsoft Graph. À présent, nous allons étendre l’application pour permettre aux utilisateurs de charger leurs e-mails en lots de 10 éléments.
Récupérer des données pagées à l’aide de Microsoft Graph
Lorsque vous appelez une API Microsoft Graph qui renvoie une collection de données, telle que l’API de messages que vous avez utilisée précédemment, vous recevez un sous-ensemble des données stockées dans Microsoft 365. Pour vérifier si votre application doit récupérer davantage de données, vérifiez si la réponse contient la propriété @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 propriété @odata.nextLink
contient une URL complète que vous pouvez appeler pour récupérer la deuxième page des résultats. Cette URL conserve toute la configuration de la demande initiale, telle que les propriétés à récupérer, le tri des données, et le nombre d’éléments à obtenir.
Pour charger le lot de données suivant, transmettez l’URL retournée dans le @odata.nextLink
au 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();
}
Après la récupération de la deuxième page des résultats, vous pouvez voir si davantage de données sont disponibles en vérifiant si les résultats ont le jeu de propriétés @odata.nextLink
.
Attention
Microsoft Graph suit la norme OData 4. La norme inclut la possibilité d’utiliser la combinaison de paramètres $top
et $skip
(les méthodes top
et skip
dans le Kit de développement logiciel (SDK) Microsoft Graph) pour récupérer une page de données spécifique. Cela n’est pas possible lorsque vous travaillez avec des e-mails, car un dossier de courrier peut contenir des données autres que des e-mails qui peuvent affecter la pagination. C’est pourquoi, lorsque vous utilisez des e-mails, vous devez toujours utiliser la valeur @odata.nextLink
pour charger plus de données.
Étapes suivantes
Étendons l’application pour permettre aux utilisateurs de charger plus d’e-mails en lots.