Graph API - Paging

當Query的資料非常大筆,不管是顯示上可能不容易閱讀,或是取得資料的Response time也可能因此拉長,Paging是一個解決方法。Graph API支援了Offset-based、Time-based與Cursor-based的Pagination。

「從第幾筆開始取得(offset);多少筆為一個集合(limit)。」

Offset-Based-Pagination讓你可以選擇資料結果從第幾筆開始取得與多少筆為一個集合。在還沒指定offset與limit之前,預設都是使用limit=5000與offset=5000。

如果想將groups的結果每兩筆為一頁,可以使用user_id/groups?limit=2。起始值可以透過offset去決定,下一頁資料為user_id/groups?limit=2&offset=2(一開始offset=0)。

回傳的結果中可以看到Paging的filed,裡面可能會出現next與previous,這就是Cursor-based Pagination。

「從什麼時候開始(since);到什麼時候為止(until)。」

Time-based-Pagination讓你可以根據時間去將資料給分頁。而since與until的參數值格式只要符合shorttime即可。以取得2012-09-20之後的POST為例子:

但並非每一個物件都可以透過since與until去做過濾喔,必須確認是有created_time欄位的物件。

「在哪一筆資料之後(after);在哪一筆資料之前(before)。」

Cursor-based-Pagination讓你可以知道某個set的資料是否為第一批與最後一批,也可以藉此取到前一批與後一批的資料。顯示結果會在Paging下的next或previous,就像Offset-Based中的範例顯示。