Freigeben über


Paginierung

Paginierung bezieht sich auf die Praxis, eine große Datenmenge in kleinere, verwaltbare Blöcke oder Seiten aufzuteilen, wenn die Daten an eine Clientanwendung bereitgestellt werden. Es ist eine gängige Technik, mit der die Leistung und Effizienz von API-Anforderungen verbessert wird, insbesondere beim Umgang mit einer großen Menge an Daten. Paginierung wird auch verwendet, um Datenverluste zu verhindern, wenn zu viele Daten in einem Block angezeigt werden.

Wie kann ich feststellen, ob eine API paginiert ist?

Paginierte Microsoft Fabric-APIs enthalten diese Parameter.

  • continuationUri

  • continuationToken

Wo finde ich die paginierten Parameter?

Die Struktur einer paginierten API-Antwort enthält die parameter continuationUri und continuationToken und sieht wie folgt aus:

{
  "value": [
    {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",  
      "displayName": "Lakehouse",
      "description": "A lakehouse used by the analytics team.",
      "type": "Lakehouse",
      "workspaceId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" 
    },
    {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",  
      "displayName": "Notebook",
      "description": "A notebook for refining medical data analysis through machine learning algorithms.",
      "type": "Notebook",
      "workspaceId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" 
    }
  ],
  "continuationToken": "ABCsMTAwMDAwLDA%3D",
  "continuationUri": "https://api.fabric.microsoft.com/v1/workspaces/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/items?continuationToken=ABCsMTAwMDAwLDA%3D"
}

Wie wird die Paginierung in den Fabric-REST-APIs verwendet?

Wenn Sie eine Anforderung an eine paginierte API stellen, erhalten Sie eine Reihe von Datensätzen, in der Regel unter der Eigenschaft Wert. Die Datensätze enthalten die Parameter continuationUri und continuationToken. Mit diesen Parametern können Sie den nächsten Satz von Datensätzen mit einer der folgenden Methoden abrufen:

  • Verwenden Sie continuationUri, um Ihre nächste Anforderung zu erhalten.

  • Verwenden Sie continuationToken als Abfrageparameter, um Ihre nächste Anforderung zu erstellen.

Sobald alle Datensätze abgerufen wurden, werden die parameter continuationUri und continuationToken aus der Antwort entfernt oder als NULL angezeigt.

Codebeispiel

In diesem Beispiel erstellen Sie einen Client und rufen die API Arbeitsbereiche auflisten auf. Der parameter continuationToken wird verwendet, um den nächsten paginierten Abschnitt von Arbeitsbereichen abzurufen, bis er leer oder NULL zurückgibt.

using (HttpClient client = new HttpClient()) 
{ 
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "<Your token>"); 
    string continuationToken = null; 
    var workspaces = new List<Workspace>(); 
    do 
    { 
        var requestUrl = "https://api.fabric.microsoft.com/v1/workspaces"; 
        if (!string.IsNullOrEmpty(continuationToken)) 
        { 
            requestUrl += $"?continuationToken={continuationToken}"; 
        } 
        HttpResponseMessage response = await client.GetAsync(requestUrl); 
        if (response.IsSuccessStatusCode) 
        { 

            // Parse the response JSON   
            var responseData = await response.Content.ReadAsStringAsync(); 
            var paginatedResponse = JsonConvert.DeserializeObject<PaginatedResponse<Workspace>>(responseData); 

            // Append the list of workspaces in the current retrieved page 
            workspaces.AddRange(paginatedResponse.Value); 

            // Check if there are more records to retrieve 
            continuationToken = paginatedResponse.ContinuationToken; 
        } 
        else 
        { 
            Console.WriteLine($"Error: {response.StatusCode}"); 
            break; 
        } 
    } while (!string.IsNullOrEmpty(continuationToken)); 
}