Laden der E-Mails eines Benutzers in Batches
Sie haben eine ASP.NET Core-App erstellt, sie mit Microsoft 365 verbunden und die letzten 10 E-Mails des Benutzers mithilfe von Microsoft Graph angezeigt. Lassen Sie uns nun die App erweitern, sodass Benutzer ihre E-Mails in Batches von 10 Stück laden können.
Abrufen der seitenweisen Daten mittels Microsoft Graph
Wenn Sie eine Microsoft Graph-API aufrufen, die eine Sammlung von Daten zurückgibt, erhalten Sie eine Teilmenge der in Microsoft 365 gespeicherten Daten. Um zu überprüfen, ob Ihre App weitere Daten abrufen kann, sehen Sie nach, ob die Antwort einen Nächste-Seite-Anforderungswert enthält. Auf diesen Wert kann mithilfe der NextPageRequest
-Eigenschaft des Antwortobjekts zugegriffen werden, wie in der GetNextLink()
-Methode gezeigt:
private string GetNextLink(IUserMessagesCollectionPage pagedMessages) {
if (pagedMessages.NextPageRequest != null)
{
// Get the URL for the next batch of records
return pagedMessages.NextPageRequest.GetHttpRequestMessage().RequestUri?.OriginalString;
}
return null;
}
Auf den Aufruf der pagedMessages.NextPageRequest.GetHttpRequestMessage()
-Eigenschaft hin wird eine vollständige URL zurückgegeben, welche Sie zum Abrufen der zweiten Seite der Ergebnisse aufrufen können. Alle Konfigurationen aus der ersten Anfrage werden beibehalten, z. B. welche Eigenschaften abgerufen werden sollen, wie die Daten sortiert und wie viele Elemente abgerufen werden sollen.
Übergeben Sie zum Laden des nächsten Datenbatches die von der GetNextLink()
-Methode zurückgegebene URL zusammen mit der GraphServiceClient
-Instanz an das UserMessagesCollectionRequest
-Objekt:
// Use the next page request URI value to get the page of messages
var messagesCollectionRequest = new UserMessagesCollectionRequest(nextPageLink, _graphServiceClient, null);
pagedMessages = await messagesCollectionRequest.GetAsync();
Nach dem Abrufen der zweiten Seite der Ergebnisse können Sie überprüfen, ob noch mehr Daten verfügbar sind, indem Sie die GetNextLink()
-Methode abrufen.
Achtung
Microsoft Graph folgt dem OData 4-Standard. Ein Teil des Standards ist die Möglichkeit, die Kombination der Parameter $top
und $skip
(die Methoden Top
und Skip
im Microsoft Graph-SDK) zu verwenden, um eine bestimmte Seite von Daten abzurufen. Dies ist bei der Arbeit mit E-Mails nicht möglich, da ein E-Mail-Ordner auch andere Daten als E-Mails enthalten kann, was das Paging beeinflussen könnte. Aus diesem Grund sollten Sie beim Arbeiten mit E-Mails zum Laden weiterer Daten immer die zuvor erläuterte Methode verwenden.
Nächste Schritte
Lassen Sie uns nun die App so erweitern, dass Benutzer weitere E-Mails in Batches laden können.