ページ分け
LSA では、複数のページの取得(pull)で大きなスナップショットのリクエストに対応するために、ページ分けをサポートします。Google は、パラメータ maxresults
で指定されたパートナー エンドポイントを pull し、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
と等しくなる必要があります。