Aperçu

Pagination

LSA est compatible avec la pagination pour traiter les demandes d'instantanés volumineux en plusieurs extractions de pages. Google extrait un point de terminaison de partenaire donné avec un paramètre maxresults pour limiter le nombre maximal de fournisseurs de services 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 permet de créer l'URL de la page suivante. Le champ nextTokenParam ne doit pas être renseigné pour la dernière page. Veuillez noter que l'objet metadata.pagination doit toujours être renseigné (car il est requis dans le schéma), même si la dernière page ne comporte pas de champ nextTokenParam. De plus, totalCount indique le nombre total de fournisseurs de services (ou reviewItems dans le cas du flux d'avis) sur toutes les pages.

Par exemple, si un partenaire dispose de 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 partenaires avec les metaData suivants :

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

Google analysera nextTokenParam: "yre7yiesar" et lancera le deuxième transfert avec l'URL suivante : 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é (voir l'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 récupération de la première page.