ページネーション
ページネーション – クエリ結果を小さな部分に分割すること – は limit、orderBy、およびフィルタリングパラメータを使用して行うことができます。GraphQL Analytics APIは、ページネーションのためのカーソルをサポートしていません。
limit(整数) は返すレコードの数を定義します。orderBy(文字列) はデータのソート順を定義します。
私たちの例では、date と clientCountryName の関係が一意であると仮定しています。
結果を制限するには、整数として limit パラメータを追加します。例えば、最初の2件のレコードをクエリするには次のようにします:
firewallEventsAdaptive (limit: 2, orderBy: [datetime_ASC, clientCountryName_ASC]) { datetime clientCountryName}レスポンス
{ "firewallEventsAdaptive" : [ { "datetime": "2018-11-12T00:00:00Z", "clientCountryName": "UM" }, { "datetime": "2018-11-12T00:00:00Z", "clientCountryName": "US" } ]}次の n 件の結果を取得するには、前のクエリの最後の結果を除外するフィルタを指定します。前の例を取り上げると、clientCountryName フィールドに大なり演算子 (_gt) を、datetime フィールドに大なりイコール演算子 (_geq) を追加することでこれを行うことができます。ここで、ソート順を具体的にすることが重要になります。より詳細なソート順を使用することで、結果を見逃す可能性が低くなります。
firewallEventsAdaptive (limit: 2, orderBy: [datetime_ASC, clientCountryName_ASC], filter: {datetime_geq: "2018-11-12T00:00:00Z", clientCountryName_gt: "US"}) { datetime clientCountryName}レスポンス
{ "firewallEventsAdaptive" : [ { "datetime": "2018-11-12T00:00:00Z", "clientCountryName": "UY" }, { "datetime": "2018-11-12T00:00:00Z", "clientCountryName": "UZ" } ]}前の n 件の結果を取得するには、フィルタとソート順を逆にします。
firewallEventsAdaptive (limit: 2, orderBy: [datetime_DESC, clientCountryName_DESC], filter: {datetime_leq: "2018-11-12T00:00:00Z", clientCountryName_lt: "UY"}) { datetime clientCountryName}レスポンス
{ "firewallEventsAdaptive" : [ { "datetime": "2018-11-12T00:00:00Z", "clientCountryName": "US" }, { "datetime": "2018-11-12T00:00:00Z", "clientCountryName": "UM" } ]}