Meilleures pratiques d’utilisation de l’API OneNote dans Microsoft Graph
Cet article fournit des recommandations pour utiliser les API OneNote dans Microsoft Graph. Ces recommandations sont basées sur les réponses aux questions courantes sur Microsoft Q&R.
Utiliser $select pour sélectionner l’ensemble minimal de propriétés dont vous avez besoin
Lorsque vous exécutez une requête pour une ressource (par exemple, des sections à l’intérieur d’un bloc-notes), vous faites une requête semblable à celle qui se trouve ci-dessous.
GET ~/notebooks/{id}/sections
Cette requête récupère toutes les propriétés des sections. Cependant, vous n’avez pas forcément besoin de toutes les propriétés. Vous pouvez utiliser le paramètre de requête $select
pour renvoyer uniquement les propriétés de votre choix, comme illustré dans l’exemple suivant.
GET ~/notebooks/{id}/sections?$select=id,displayName
La même approche s’applique aux autres API OneNote.
Utiliser $expand au lieu d’effectuer plusieurs appels d’API
Supposons que vous souhaitiez récupérer l’ensemble des blocs-notes, sections et groupes de sections d’un utilisateur dans une vue hiérarchique. Vous pouvez procéder ainsi :
Appelez
GET ~/notebooks
pour obtenir la liste de blocs-notes.Pour chaque bloc-notes récupéré, appelez
GET ~/notebooks/{notebookId}/sections
pour récupérer la liste des sections.Pour chaque bloc-notes récupéré, appelez
GET ~/notebooks/{notebookId}/sectionGroups
pour récupérer la liste des groupes de sections.Vous pouvez éventuellement parcourir de manière récursive les groupes de sections.
Cette approche fonctionne (avec quelques allers-retours séquentiels supplémentaires vers le service) ; Toutefois, une meilleure approche consiste à utiliser le paramètre de $expand
requête.
GET ~/notebooks?$expand=sections,sectionGroups($expand=sections)
Cette approche produit les mêmes résultats en un seul aller-retour réseau, avec de meilleures performances.
Après avoir obtenu toutes les pages pour un utilisateur, répéter l’opération pour chaque section séparément
Microsoft Graph expose un point de terminaison pour récupérer toutes les pages ; Toutefois, nous vous déconseillons d’utiliser ce point de terminaison pour obtenir toutes les pages à laquelle l’utilisateur a accès. Lorsque l’utilisateur a trop de sections et qu’une tentative d’obtention de toutes les pages est effectuée, l’appel génère un code 400
d’état HTTP et le message suivant : « Le nombre maximal de sections est dépassé pour cette requête. Pour obtenir des pages pour les comptes comportant un nombre élevé de sections, nous vous recommandons d’obtenir des pages pour une section à la fois. » Pour plus d’informations sur ce code d’erreur, consultez Codes d’erreur OneNote.
Pour obtenir toutes les pages auxquelles un utilisateur a accès, la meilleure pratique consiste à effectuer des appels distincts pour obtenir les pages de chaque section.
Par exemple, au lieu d’utiliser cet appel (cette API est appelée, vous ne pourrez donc pas récupérer toutes les pages à la fois) :
GET ~/pages
Il est préférable d’utiliser l’appel suivant plusieurs fois (surtout si vous n’avez pas besoin de toutes les sections) :
GET ~/sections/{id}/pages
Lorsque vous obtenez les métadonnées de la page, remplacez le classement lastModifiedDateTime
par défaut. Il est plus rapide d’obtenir des pages lorsque vous n’avez pas besoin de les trier par lastModifiedDateTime
. Pour ce faire, vous pouvez les trier par n’importe quelle autre propriété. Par exemple :
GET ~/sections/{id}/pages?$select=id,title,createdDateTime&$orderby=createdDateTime