概要

ページ分け

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 と等しくなる必要があります。