다음을 통해 공유


페이지 번호 매기기

페이지 매김은 클라이언트 애플리케이션에 데이터를 전달할 때 대규모 데이터 집합을 더 작고 관리하기 쉬운 청크 또는 페이지로 분할하는 방법을 나타냅니다. 특히 많은 양의 데이터를 처리할 때 API 요청의 성능과 효율성을 향상시키는 데 사용되는 일반적인 기술입니다. 페이지 매김은 한 청크에 표시할 데이터가 너무 많은 경우 데이터 손실을 방지하는 데도 사용됩니다.

API가 페이지네이션 처리되는지 어떻게 알 수 있나요?

Microsoft Fabric 페이지화된 API에는 이러한 매개 변수가 포함됩니다.

  • continuationUri

  • continuationToken

페이지를 매긴 매개 변수는 어디에서 찾을 수 있나요?

페이지를 매긴 API 응답의 구조는 continuationUricontinuationToken 매개 변수를 포함하며 다음과 같습니다.

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

패브릭 REST API에서 페이지 매김은 어떻게 사용합니까?

페이지가 매겨진 API에 요청을 보내면, 일반적으로 속성 아래에서 데이터 집합을 받게 됩니다. 레코드에는 continuationUri 매개 변수와 continuationToken 매개 변수가 포함됩니다. 이러한 매개 변수를 사용하면 다음 방법 중 하나를 사용하여 다음 레코드 집합을 검색할 수 있습니다.

  • continuationUri을 사용하여 다음 요청을 가져오세요.

  • 쿼리 매개 변수로 사용하여 continuationToken 다음 요청을 빌드합니다.

모든 레코드가 검색되면 continuationUri 응답에서 및 continuationToken 매개 변수가 제거되거나 null로 표시됩니다.

코드 예제

이 예제에서는 클라이언트를 만들고 목록 작업 영역 API를 호출합니다. continuationToken 매개변수는 다음 페이지가 매겨진 작업 영역 청크를 가져오는 데 사용되며, 빈 값이나 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)); 
}