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.