Udostępnij przez


Paginacja

Stronicowanie odnosi się do praktyki dzielenia dużych zestawów danych na mniejsze fragmenty lub strony, którymi można zarządzać podczas dostarczania danych do aplikacji klienckiej. Jest to powszechna technika stosowana do poprawy wydajności i wydajności żądań interfejsu API, zwłaszcza w przypadku obsługi dużej ilości danych. Stronicowanie jest również używane do zapobiegania utracie danych w przypadku zbyt dużej ilości danych do wyświetlenia w jednym kawałku.

Jak sprawdzić, czy interfejs API jest podzielony na strony?

Interfejsy API stronicowane w usłudze Microsoft Fabric zawierają te parametry.

  • continuationUri

  • continuationToken

Gdzie można znaleźć stronicowane parametry?

Struktura odpowiedzi z API z podziałem na strony zawiera parametry continuationUri i continuationToken i wygląda następująco:

{
  "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"
}

Jak używa się stronicowania w interfejsach API REST Fabric?

Gdy wysyłasz żądanie do stronicowanego interfejsu API, otrzymujesz zestaw rekordów, zazwyczaj w ramach właściwości należącej do wartości. Rekordy obejmują parametry continuationUri i continuationToken. Za pomocą tych parametrów można pobrać następny zestaw rekordów przy użyciu jednej z następujących metod:

  • Użyj continuationUri, aby uzyskać następne żądanie.

  • Użyj continuationToken jako parametru zapytania, aby skompilować następne żądanie.

Po pobraniu wszystkich rekordów parametry continuationUri i continuationToken są usuwane z odpowiedzi lub są wyświetlane jako null.

Przykład kodu

W tym przykładzie tworzysz klienta i wywołujesz interfejs API list workspaces. Parametr continuationToken służy do pobierania następnego stronicowanego fragmentu obszarów roboczych, aż zwróci wartość pustą lub null.

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)); 
}