listItem: delta

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Abrufen neu erstellter, aktualisierter oder gelöschter Listenelemente , ohne die gesamte Elementsammlung vollständig lesen zu müssen.

Die App ruft zunächst delta ohne Parameter auf. Der Dienst beginnt mit dem Aufzählen der Hierarchie der Liste, gibt Seiten von Elementen und entweder einen @odata.nextLink oder einen @odata.deltaLink zurück. Ihre App sollte weiterhin mit dem @odata.nextLink anrufen, bis ein @odata.deltaLink zurückgegeben wird.

Nachdem Sie alle Änderungen erhalten haben, können Sie sie auf Ihren lokalen Zustand anwenden. Um in Zukunft nach Änderungen zu suchen, rufen Sie erneut mit dem @odata.deltaLink aus der vorherigen Antwort andelta.

Der „delta“-Feed zeigt den aktuellen Zustand jedes Elements, nicht jede Änderung. Wenn ein Element zweimal umbenannt wurde, wird es nur einmal mit seinem neuesten Namen angezeigt. Das gleiche Element kann aus verschiedenen Gründen mehrmals in einem Deltafeed vorkommen. Verwenden Sie das letzte Vorkommen in der Auflistung.

Gelöschte Elemente werden mit der gelöschten Facette zurückgegeben. Deleted Gibt an, dass das Element gelöscht wurde und nicht wiederhergestellt werden kann. Elemente mit dieser Eigenschaft müssen aus Ihrem lokalen Zustand entfernt werden.

Hinweis: Sie sollten einen Ordner nur dann lokal löschen, wenn er nach der Synchronisierung aller Änderungen leer ist.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Weltweiter Service US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet
✅ ✅ ✅ ✅

Berechtigungen

Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) Sites.Read.All Sites.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung Sites.Read.All Sites.ReadWrite.All

HTTP-Anforderung

GET /sites/{siteId}/lists/{listId}/items/delta

Abfrageparameter

In der Anforderungs-URL können Sie den folgenden optionalen Abfrageparameter einschließen.

Parameter Typ Beschreibung
token Zeichenfolge Wenn nicht angegeben, wird der aktuelle Status der Hierarchie aufgelistet. If latestgibt eine leere Antwort mit dem neuesten Deltatoken zurück. Wenn ein vorheriges Deltatoken einen neuen Status seit diesem Token zurückgibt.

Diese Methode unterstützt auch die $selectOData-Abfrageparameter , $expandund $top OData, um die Antwort anzupassen.

Anforderungsheader

Kopfzeile Wert
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung.

Anforderungstext

Geben Sie keinen Anforderungstext für diese Methode an.

Antwort

Bei Erfolg gibt diese Methode einen 200 OK-Antwortcode und eine Sammlung von listItem-Objekten im Antworttext zurück.

Zusätzlich zu einer Auflistung von listItem-Objekten enthält die Antwort auch eine der folgenden Eigenschaften.

Name Wert Beschreibung
@odata.nextLink URL Eine URL zum Abrufen der nächsten verfügbaren Seite mit Änderungen, wenn im aktuellen Satz weitere Änderungen vorhanden sind.
@odata.deltaLink URL Eine URL, die anstelle eines @odata.nextLink zurückgegeben wird, sobald alle aktuellen Änderungen zurückgegeben wurden. Verwenden Sie diese Eigenschaft, um die nächsten Änderungen in der Zukunft zu lesen.

In einigen Fällen gibt der Dienst einen 410 Gone Antwortcode mit einer Fehlerantwort zurück, die einen der folgenden Fehlercodes enthält, und einem Location Header, der einen neuen nextLink Code enthält, der eine neue Delta-Enumeration startet. Dies tritt auf, wenn der Dienst keine Liste der Änderungen für ein bestimmtes Token bereitstellen kann. Dies kann zum Beispiel der Fall sein, wenn ein Client versucht, ein altes Token wiederzuverwenden, nachdem die Verbindung für längere Zeit getrennt wurde, oder wenn sich der Serverstatus geändert hat und ein neues Token erforderlich ist.

Vergleichen Sie nach Abschluss der vollständigen Aufzählung die zurückgegebenen Elemente mit Ihrem lokalen Zustand, und folgen Sie den Anweisungen basierend auf dem Fehlertyp.

Fehlertyp Anweisungen
resyncChangesApplyDifferences Ersetzen Sie alle lokalen Elemente durch die Versionen vom Server (einschließlich Löschungen), wenn Sie sicher sind, dass der Dienst bei der letzten Synchronisierung mit Ihren lokalen Änderungen auf dem neuesten Stand war. Laden Sie alle lokalen Änderungen hoch, die dem Server noch nicht bekannt sind.
resyncChangesUploadDifferences Laden Sie alle lokalen Elemente hoch, die der Dienst nicht zurückgegeben hat, und laden Sie alle Elemente hoch, die sich von den Versionen des Servers unterscheiden. Bewahren Sie beide Kopien auf, wenn Sie nicht sicher sind, welche aktueller ist.

Zusätzlich zu den Resynchronisierungsfehlern und für weitere Details zur Rückgabe von Fehlern siehe Microsoft Graph-Fehlerantworten und Ressourcentypen.

Beispiele

Beispiel 1: Ursprüngliche Anforderung

Das folgende Beispiel zeigt eine anfängliche Anforderung und wie Sie diese API aufrufen, um Ihren lokalen Zustand zu ermitteln.

Anforderung

Das folgende Beispiel zeigt eine anfängliche Anforderung.

GET https://graph.microsoft.com/beta/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta

Antwort

Das folgende Beispiel zeigt die Antwort, die die erste Seite der Änderungen und die Eigenschaft @odata.nextLink enthält, die angibt, dass in der aktuellen Gruppe von Elementen keine Elemente mehr verfügbar sind. Die App sollte nun solange den URL-Wert von @odata.nextLink anfordern, bis alle Seiten von Elementen abgerufen wurden.

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/beta/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka"
}

Beispiel 2: Letzte Seitenanforderung

Das folgende Beispiel zeigt eine Anforderung, die die letzte Seite in einem Satz abruft und wie diese API aufgerufen wird, um Ihren lokalen Status zu aktualisieren.

Anforderung

Das folgende Beispiel zeigt eine Anforderung nach der ersten Anforderung.

GET https://graph.microsoft.com/beta/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka

Antwort

Das folgende Beispiel zeigt die Antwort, die angibt, dass das benannte Element TestItemB.txt gelöscht wurde und das Element TestFolder zwischen der ersten Anforderung und dieser Anforderung zum Aktualisieren des lokalen Status entweder hinzugefügt oder geändert wurde.

Die letzte Seite der Elemente enthält die Eigenschaft @odata.deltaLink , die die URL bereitstellt, die später verwendet werden kann, um Änderungen seit dem aktuellen Satz von Elementen abzurufen.

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/beta/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka"
}

In einigen Szenarien möchten Sie möglicherweise den aktuellen deltaLink Wert anfordern, ohne zuvor bereits alle Elemente in der Liste aufgelistet zu haben. Dies kann nützlich sein, wenn Ihre App nur über Änderungen und nicht über vorhandene Elemente Bescheid wissen muss. Um die neuesten deltaLinkabzurufen, rufen Sie delta mit dem Abfragezeichenfolgenparameter auf ?token=latest.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

GET https://graph.microsoft.com/beta/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=latest

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [ ],
  "@odata.deltaLink": "https://graph.microsoft.com/beta/sites/contoso.sharepoint.com,2C712604-1370-44E7-A1F5-426573FDA80A,2D2244C3-251A-49EA-93A8-39E1C3A060FE/lists/22e03ef3-6ef4-424d-a1d3-92a337807c30/items/delta?token=1230919asd190410jlka"
}