ページネーション
LSA は、複数のページ取得(プル)で大きなスナップショットのリクエストに対応するために、ページネーションをサポートしています。Google は、パラメータ maxresults
を使用して特定のパートナー エンドポイントをプルし、JSON レスポンスで返される serviceProviders の最大数を制限します。パートナーは、JSON レスポンスの metadata.pagination.nextTokenParam
フィールドにページネーション トークンを入力します。このトークンの値はパートナー固有のもので、次のページの URL を作成するために使用されます。最後のページでは nextTokenParam
フィールドに値を入力してはなりません。最後のページには nextTokenParam
フィールドはありませんが、metadata.pagination
オブジェクトは常に(スキーマで必須であるため)入力されている必要があります。また、totalCount
は、すべてのページにわたるサービス プロバイダの総数(レビュー フィードの場合は reviewItems
)を示します。
たとえば、パートナーが完全なスナップショットに 200 のプロバイダを持っているとします。Google が URL http://www.partners.com/feeds/{version}/profile&maxresults=100
でフィードの転送を開始すると、最初のページは次の metaData
を含む最初の 100 件のパートナー プロバイダを返す必要があります。
"metaData": {
"feedCategory":"SNAPSHOT",
"feedTimestampMicros":1532930955190163,
"apiVersion": "v1",
"pagination": {
"nextTokenParam": "yre7yiesar"
},
"totalCount":200
}
"serviceProviders": {....} // Contains 100 service provider objects.
Google は nextTokenParam: "yre7yiesar"
を解析し、URL http:partners.com/feeds/{version}/profile&nextpagetoken=yre7yiesar&maxresults=100
で 2 回目の転送を開始します。
2 ページ目では、最後の 100 件のプロバイダが返されます。2 ページ目が最後のページでもあるため、nextTokenParam
には値が入力されません(以下の metaData
の例を参照)。これは、ページネーションの終了を示します。
"metaData": {
"feedCategory":"SNAPSHOT",
"feedTimestampMicros":1532930955190164,
"apiVersion": "v1",
"pagination": {},
"totalCount":200
}
"serviceProviders": {....}
すべてのページをフェッチした後、serviceProviders
オブジェクトの合計数(すべてのページ)は、最初のページ フェッチで示された totalCount
と等しくなければなりません。