第7章 API でのページネーションの使用
API はコレクションの応答をページ分割します。つまり、コレクションには数万から数十万のオブジェクトが含まれる可能性がありますが、API パフォーマンス上の理由から、各 Web リクエストでは限られた数の結果のみが返されます。
コレクションの結果を受け取ると、次のような内容が表示されます。
{'count': 25, 'next': 'http://testserver/api/v2/some_resource?page=2', 'previous': None, 'results': [ ... ] }
手順
- "next" が含まれる連続した URL で指定されているページを要求して、次のページに移動します。
各リクエストで返される結果の数を変更するには、
page_size=XX
クエリー文字列パラメーターを使用します。-
page_size
にはデフォルトの上限 200 があります。これは、ユーザーが上限を超える値 (?page_size=1000
など) を試行したときに適用されます。ただし、/etc/tower/conf.d/<some file>.py
の値をより高い値に設定することで、この制限を変更できます。たとえば、MAX_PAGE_SIZE=1000
です。
-
特定のページの結果を取得するには、page クエリー文字列パラメーターを使用します。
http://<controller server name>/api/v2/model_verbose_name?page_size=100&page=2
結果とともに返される前後のリンクは、これらのクエリー文字列パラメーターを自動的に設定します。
200 を超えるページサイズを要求しないでください。
ユーザーインターフェイスでは、スクロールを回避するために小さい値が使用されます。