Aperçu

Pagination

LSA prend en charge la pagination pour traiter les requêtes d'un instantané volumineux dans plusieurs récupérations de page (pulls). Google extraira un point de terminaison de partenaire donné avec un paramètre maxresults afin de limiter le nombre maximal de servicesProviders renvoyés dans la réponse JSON. Les partenaires insèrent un jeton de pagination dans le champ metadata.pagination.nextTokenParam de la réponse JSON. La valeur de ce jeton est spécifique au partenaire et sert à construire l'URL de la page suivante. Le champ nextTokenParam ne doit pas être renseigné pour la dernière page. Notez que l'objet metadata.pagination doit toujours être renseigné (car cela est obligatoire dans le schéma), même si la dernière page ne comporte pas de champ nextTokenParam. En outre, totalCount indique le nombre total de fournisseurs de services (ou reviewItems dans le cas du flux d'avis) sur toutes les pages.

Prenons l'exemple d'un partenaire comptant 200 fournisseurs dans l'instantané complet. Lorsque Google lance le transfert de flux avec l'URL http://www.partners.com/feeds/{version}/profile&maxresults=100, la première page doit renvoyer les 100 premiers fournisseurs de partenaire avec le code metaData suivant :

"metaData": {
     "feedCategory":"SNAPSHOT",
     "feedTimestampMicros":1532930955190163,
     "apiVersion": "v1",
     "pagination": {
        "nextTokenParam": "yre7yiesar"
     },
     "totalCount":200
}
"serviceProviders": {....}   // Contains 100 service provider objects.

Google va analyser nextTokenParam: "yre7yiesar" et initier le deuxième transfert avec l'URL : http:partners.com/feeds/{version}/profile&nextpagetoken=yre7yiesar&maxresults=100

La deuxième page doit renvoyer les 100 derniers fournisseurs. Étant donné que la deuxième page est également la dernière, nextTokenParam ne sera pas renseigné (exemple metaData ci-dessous), ce qui indique la fin de la pagination.

"metaData": {
     "feedCategory":"SNAPSHOT",
     "feedTimestampMicros":1532930955190164,
     "apiVersion": "v1",
     "pagination": {},
     "totalCount":200
}
"serviceProviders": {....}

Notez qu'après la récupération de toutes les pages, le nombre total d'objets serviceProviders (sur toutes les pages) doit être égal à la valeur totalCount indiquée lors de la première extraction.