Pagination des données Microsoft Graph dans votre application

Certaines requêtes par rapport à Microsoft Graph retournent plusieurs pages de données en raison de la pagination côté serveur ou en raison de l’utilisation du paramètre de requête $top pour limiter spécifiquement la taille de page dans une requête. Lorsque plusieurs demandes de requête sont nécessaires pour récupérer tous les résultats, Microsoft Graph retourne une propriété @odata.nextLink dans la réponse qui contient une URL vers la page de résultats suivante.

Par exemple, l’URL suivante demande de renvoyer tous les utilisateurs d’une organisation avec une taille de page définie sur 5 à l’aide du paramètre de requête $top :

https://graph.microsoft.com/v1.0/users?$top=5

Si le résultat contient plus de cinq utilisateurs, Microsoft Graph renverra une propriété @odata.nextLink semblable à ce qui suit, ainsi que la première page d’utilisateurs :

"@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$top=5&$skiptoken=X%274453707 ... 6633B900000000000000000000%27"

Vous pouvez récupérer la page de résultats suivante en envoyant la valeur d’URL de la propriété @odata.nextLink à Microsoft Graph.

https://graph.microsoft.com/v1.0/users?$top=5&$skiptoken=X%274453707 ... 6633B900000000000000000000%27

Microsoft Graph continuera à retourner une référence à la page suivante des résultats dans la propriété @odata.nextLink avec chaque réponse jusqu’à ce que toutes les pages des résultats aient été lues. Pour lire tous les résultats, vous devez continuer à toutes les Microsoft Graph avec la propriété @odata.nextLink retournée dans chaque réponse jusqu’à ce que la propriété @odata.nextLink ne soit plus retournée.

Important : vous devez inclure l’URL complète dans la propriété @odata.nextLink de votre demande pour la page de résultats suivante. En fonction de l’API utilisée pour l’exécution de la requête, la valeur d’URL @odata.nextLink contient le paramètre de requête $skiptoken ou $skip. L’URL contient également tous les autres paramètres de requête présents dans la demande d’origine. N’essayez pas d’extraire la valeur $skiptoken ou $skip, ou de l’utiliser dans une autre demande.

Le comportement de pagination varie en fonction des différentes API Microsoft Graph. Lorsque vous utilisez des données paginées, prenez en compte les éléments suivants :

  • Une page de résultats peut contenir zéro ou plusieurs résultats.
  • Des API différentes peuvent avoir des tailles de page par défaut et maximale différentes.
  • Des API différentes peuvent se comporter différemment si vous spécifiez une taille de page (via le paramètre de requête $top) qui dépasse la taille de page maximale pour cette API. En fonction de l’API, la taille de page demandée peut être ignorée, peut revenir à la taille de page maximale par défaut pour cette API ou Microsoft Graph peut renvoyer une erreur.
  • Les ressources ou les relations ne prennent pas toutes en charge la pagination. Par exemple, les requêtes relatives à directoryRoles ne prennent pas en charge la pagination. Cela inclut la lecture d’objets de rôle eux-mêmes, ainsi que de membres de rôle.
  • Lors de la pagination sur des ressources du répertoire, les en-têtes de requête supplémentaires tels que l’en-tête ConsistencyLevel ne sont pas inclus par défaut dans les requêtes de page suivantes. Si ces en-têtes doivent être envoyés sur les requêtes suivantes, vous devez les définir de manière explicite.
  • Lors de l’utilisation de la chaîne de requête $count=true pendant l’exécution d’une requête sur les ressources du répertoire, la propriété @odata.count est uniquement présente sur la première page des données paginées.

En savoir plus sur la pagination

La vidéo suivante vous présente la pagination dans Microsoft Graph.