Partager via


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 latestla 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 $selectparamètres de requête OData , $expandet $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"
}

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=latestde 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"
}