3.7.5. ページネーション
一部の Red Hat Virtualization 環境には、大規模なオブジェクトが含まれます。一度のリクエストですべてを取得するのは現実的ではなく、パフォーマンスも悪くなります。ページ単位での検索を可能にするため、search
パラメーターはオプションで page
句をサポートしています。これは、max
パラメーターと組み合わせてページングの基礎となります。たとえば、ページサイズが 10 の仮想マシンの最初のページを取得するには、以下のように要求を送信します。
GET /ovirt-engine/api/vms?search=page%201&max=10
GET /ovirt-engine/api/vms?search=page%201&max=10
search パラメーターは URL エンコードされており、エンコード前の実際の search
パラメーターの値は page 1
なので、実際には 1 ページ目を要求していることになります。
page
値を増やして、次のページを取得します。
GET /ovirt-engine/api/vms?search=page%202&max=10
GET /ovirt-engine/api/vms?search=page%202&max=10
page
句は、search
パラメーター内の他の句と組み合わせて使用できます。たとえば、以下の要求は仮想マシンの 2 ページ目を返しますが、名前で並べ替えます。
GET /ovirt-engine/api/vms?search=sortby%20name%20page%202&max=10
GET /ovirt-engine/api/vms?search=sortby%20name%20page%202&max=10
API はステートレスで、すべての要求が互いに独立しているため、異なる要求間で状態を維持することはできません。その結果、要求間でステータスが変更されると、ページの結果に一貫性がなくなることがあります。
たとえば、仮想マシンの一覧から特定のページを要求し、次のページを要求する前に仮想マシンが作成または削除された場合には、結果の一部が欠落しているか、または重複が含まれる可能性があります。