listItem : delta
Espace de noms: microsoft.graph
Obtenez les éléments de liste nouvellement créés, mis à jour ou supprimés sans avoir à effectuer une lecture complète de l’ensemble de la collection d’éléments.
Votre application commence par appeler le service delta
sans aucun paramètre.
Le service commence à énumérer la hiérarchie de la liste, en retournant des pages d’éléments et un @odata.nextLink ou un @odata.deltaLink.
Votre application doit continuer à appeler avec le @odata.nextLink jusqu’à ce qu’un @odata.deltaLink soit retourné.
Une fois que vous avez reçu toutes les modifications, vous pouvez les appliquer à votre état local.
Pour vérifier les modifications à l’avenir, appelez delta
à nouveau avec le @odata.deltaLink de la réponse précédente.
Le flux delta affiche le dernier état de chaque élément, et non chaque modification. Si un élément a été renommé deux fois, il n’apparaît qu’une seule fois, avec son nom le plus récent. Le même élément peut apparaître plusieurs fois dans un flux delta, pour diverses raisons. Vous devez utiliser la dernière occurrence consultée.
Les éléments avec cette propriété doivent être supprimés de votre état local.
Note: Vous devez supprimer un dossier localement uniquement s’il est vide après la synchronisation de toutes les modifications.
Cette API est disponible dans les déploiements de cloud national suivants.
Service global | Gouvernement des États-Unis L4 | Us Government L5 (DOD) | Chine gérée par 21Vianet |
---|---|---|---|
✅ | ❌ | ❌ | ❌ |
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.
Type d’autorisation | Autorisations avec privilèges minimum | Autorisations privilégiées plus élevées |
---|---|---|
Déléguée (compte professionnel ou scolaire) | Sites.Read.All | Sites.ReadWrite.All |
Déléguée (compte Microsoft personnel) | Non prise en charge. | Non prise en charge. |
Application | Sites.Read.All | Sites.ReadWrite.All |
Requête HTTP
GET /sites/{siteId}/lists/{listId}/items/delta
Paramètres de requête
Dans l’URL de la requête, vous pouvez inclure le paramètre de requête facultatif suivant.
Paramètre | Type | Description |
---|---|---|
jeton | Chaîne | S’il n’est pas spécifié, énumère l’état actuel de la hiérarchie. Si latest la valeur est , retourne une réponse vide avec le jeton delta le plus récent. Si un jeton delta précédent, retourne un nouvel état depuis ce jeton. |
Cette méthode prend également en charge les $select
paramètres de requête OData , $expand
et $top
pour personnaliser la réponse.
En-têtes de demande
En-tête | Valeur |
---|---|
Autorisation | Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation. |
Corps de la demande
N’indiquez pas le corps de la demande pour cette méthode.
Réponse
En cas de réussite, cette méthode renvoie un code de réponse 200 OK
et une collection d’objets listItem dans le corps de la réponse.
En plus d’une collection d’objets listItem , la réponse inclut également l’une des propriétés suivantes.
Nom | Valeur | Description |
---|---|---|
@odata.nextLink | URL | URL permettant de récupérer la page de modifications disponible suivante s’il y a d’autres modifications dans l’ensemble actuel. |
@odata.deltaLink | URL | URL renvoyée à la place de @odata.nextLink une fois que toutes les modifications en cours ont été renvoyées. Utilisez cette propriété pour lire le jeu de modifications suivant à l’avenir. |
Dans certains cas, le service retourne un 410 Gone
code de réponse avec une réponse d’erreur qui contient l’un des codes d’erreur suivants et un Location
en-tête qui contient un nouveau nextLink
qui démarre une nouvelle énumération delta. Cela se produit lorsque le service ne peut pas fournir la liste des modifications pour un jeton donné ; par exemple, si un client tente de réutiliser un ancien jeton après avoir été déconnecté pendant une longue période, ou si l’état du serveur a changé et qu’un nouveau jeton est requis.
Une fois l’énumération complète terminée, comparez les éléments retournés à votre état local et suivez les instructions en fonction du type d’erreur.
Type d’erreur | Instructions |
---|---|
resyncChangesApplyDifferences | Remplacez tous les éléments locaux par les versions du serveur (y compris les suppressions) si vous êtes sûr que le service était à jour avec vos modifications locales lors de la dernière synchronisation. Téléchargez les modifications locales que le serveur ignore. |
resyncChangesUploadDifferences | Chargez tous les éléments locaux que le service n’a pas retournés et chargez tous les éléments qui diffèrent des versions du serveur. Conservez les deux copies si vous ne savez pas laquelle est la plus à jour. |
En plus des erreurs de resynchronisation et pour plus d’informations sur la façon dont les erreurs sont retournées, consultez Réponses aux erreurs Microsoft Graph et types de ressources.
Exemples
Exemple 1 : Demande initiale
L’exemple suivant montre une demande initiale et comment appeler cette API pour établir votre état local.
Demande
L’exemple suivant montre une requête initiale.
GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta
Réponse
L’exemple suivant montre la réponse qui inclut la première page de modifications et la propriété @odata.nextLink qui indique qu’aucun autre élément n’est disponible dans l’ensemble d’éléments actuel. Votre application doit continuer à demander la valeur d’URL de @odata.nextLink jusqu’à ce que toutes les pages d’éléments aient été récupérées.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"createdDateTime": "2020-06-02T22:46:58Z",
"eTag": "\"{12AD05BB-59B8-43AA-9456-77C44E9BC066},756\"",
"id": "1",
"lastModifiedDateTime": "2021-10-14T23:27:27Z",
"webUrl": "http://contoso.sharepoint.com/Shared%20Documents/TestFolder",
"createdBy": {
"user": {
"displayName": "John doe"
}
},
"parentReference": {
"id": "1",
"path": "Shared%20Documents",
"siteId": "12AD05BB-59B8-43AA-9456-77C44E9BC066"
},
"contentType": {
"id": "0x00123456789abc",
"name": "Folder"
}
},
{
"createdDateTime": "2020-06-02T22:46:58Z",
"eTag": "\"{12AD05BB-59B8-43AA-9456-77C44E9BC067},756\"",
"id": "2",
"lastModifiedDateTime": "2021-10-14T23:27:27Z",
"webUrl": "http://contoso.sharepoint.com/Shared%20Documents/TestItemA.txt",
"createdBy": {
"user": {
"displayName": "John doe"
}
},
"parentReference": {
"id": "2",
"path": "Shared%20Documents",
"siteId": "12AD05BB-59B8-43AA-9456-77C44E9BC066"
},
"contentType": {
"id": "0x00123456789abc",
"name": "Document"
}
},
{
"createdDateTime": "2020-06-02T22:46:58Z",
"eTag": "\"{12AD05BB-59B8-43AA-9456-77C44E9BC068},756\"",
"id": "3",
"lastModifiedDateTime": "2021-10-14T23:27:27Z",
"webUrl": "http://contoso.sharepoint.com/Shared%20Documents/TestItemB.txt",
"createdBy": {
"user": {
"displayName": "John doe"
}
},
"parentReference": {
"id": "3",
"path": "Shared%20Documents",
"siteId": "12AD05BB-59B8-43AA-9456-77C44E9BC066"
},
"contentType": {
"id": "0x00123456789abc",
"name": "Document"
}
}
],
"@odata.nextLink": "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka"
}
Exemple 2 : Dernière demande de page
L’exemple suivant montre une requête qui obtient la dernière page d’un ensemble et comment appeler cette API pour mettre à jour votre état local.
Demande
L’exemple suivant montre une requête après la demande initiale.
GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka
Réponse
L’exemple suivant montre la réponse qui indique que l’élément nommé TestItemB.txt
a été supprimé et que l’élément TestFolder
a été ajouté ou modifié entre la demande initiale et cette demande de mise à jour de l’état local.
La dernière page des éléments inclut la propriété @odata.deltaLink qui fournit l’URL qui peut être utilisée ultérieurement pour récupérer les modifications depuis l’ensemble actuel d’éléments.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"createdDateTime": "2020-06-02T22:46:58Z",
"eTag": "\"{12AD05BB-59B8-43AA-9456-77C44E9BC066},756\"",
"id": "1",
"lastModifiedDateTime": "2016-03-21T20:01:37Z",
"webUrl": "http://contoso.sharepoint.com/Shared%20Documents/TestFolder",
"createdBy": {
"user": {
"displayName": "John doe"
}
},
"parentReference": {
"id": "1",
"path": "Shared%20Documents",
"siteId": "12AD05BB-59B8-43AA-9456-77C44E9BC066"
},
"contentType": {
"id": "0x00123456789abc",
"name": "Folder"
}
},
{
"id": "3",
"parentReference": {
"siteId": "12AD05BB-59B8-43AA-9456-77C44E9BC066"
},
"contentType": {
"id": "0x00123456789abc",
"name": "Document"
},
"deleted": {
"state": "deleted"
}
}
],
"@odata.deltaLink": "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka"
}
Exemple 3 : demande de liaison Delta
Dans certains scénarios, vous pouvez demander la valeur actuelle deltaLink
sans énumérer au préalable tous les éléments de la liste. Cela peut être utile si votre application souhaite uniquement connaître les modifications et n’a pas besoin de connaître les éléments existants.
Pour récupérer la dernière version deltaLink
, appelez delta
avec le paramètre ?token=latest
de chaîne de requête .
Demande
L’exemple suivant illustre une demande.
GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=latest
Réponse
L’exemple suivant illustre la réponse.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [ ],
"@odata.deltaLink": "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka"
}