Visão geral

Paginação

A LSA é compatível com a paginação para acomodar solicitações de um snapshot grande em várias buscas de página (pulls). O Google vai extrair um determinado endpoint do parceiro com um parâmetro maxresults para limitar a quantidade máxima de serviceProviders retornados na resposta JSON. Os parceiros preencherão um token de paginação no campo metadata.pagination.nextTokenParam na resposta JSON. O valor desse token é específico ao parceiro e é usado para construir o URL da próxima página. O campo nextTokenParam não pode ser preenchido para a última página. O objeto metadata.pagination precisa ser sempre preenchido (conforme necessário no esquema), mesmo que a última página não tenha um campo nextTokenParam. Além disso, totalCount indica o número total de provedores de serviços (ou reviewItems no caso de feed de avaliações) em todas as páginas.

Por exemplo, se um parceiro tiver 200 provedores no resumo completo. Quando o Google inicia a transferência dos feeds com o URL http://www.partners.com/feeds/{version}/profile&maxresults=100, a primeira página precisa retornar os primeiros 100 provedores de parceiros com a seguinte metaData:

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

O Google analisará nextTokenParam: "yre7yiesar" e iniciará a segunda transferência com o URL: http:partners.com/feeds/{version}/profile&nextpagetoken=yre7yiesar&maxresults=100

A segunda página retornará os últimos 100 provedores. Como a segunda página também é a última, nextTokenParam não será preenchido (metaData exemplo abaixo), indicando o fim da paginação.

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

Depois de buscar todas as páginas, o número total de objetos serviceProviders (em todas as páginas) precisa ser igual ao totalCount indicado na busca de primeira página.