Partilhar via


Paginação

Paginação refere-se à prática de dividir um grande conjunto de dados em partes ou páginas menores e gerenciáveis ao entregar os dados a um aplicativo cliente. É uma técnica comum usada para melhorar o desempenho e a eficiência das solicitações de API, especialmente ao lidar com uma grande quantidade de dados. A paginação também é usada para evitar a perda de dados quando há muitos dados para exibir em um bloco.

Como saber se uma API está paginada?

As APIs paginadas do Microsoft Fabric contêm esses parâmetros.

  • continuationUri

  • continuationToken

Onde posso encontrar os parâmetros paginados?

A estrutura de uma resposta de API paginada contém os continuationUri parâmetros e continuationToken e tem esta aparência:

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

Como a paginação é usada nas APIs REST de malha?

Quando você faz uma solicitação para uma API paginada, recebe um conjunto de registros, geralmente sob a propriedade value . Os registos incluem os parâmetros continuationUri e continuationToken. Com esses parâmetros, você pode recuperar o próximo conjunto de registros usando um destes métodos:

  • Use continuationUri para obter sua próxima solicitação.

  • Use continuationToken como um parâmetro de consulta para criar sua próxima solicitação.

Depois que todos os registros são recuperados, os continuationUri parâmetros e continuationToken são removidos da resposta ou aparecem como nulos.

Exemplo de código

Neste exemplo, cria-se um cliente e chama-se a API para listar espaços de trabalho. O continuationToken parâmetro é usado para obter o próximo bloco paginado de espaços de trabalho, até que ele retorne vazio ou nulo.

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