Introdução
Casos de uso de paginação
max_results
para a solicitação. Repetir as solicitações usando tokens de paginação permite recuperar todos os resultados. Quando uma resposta é retornada sem um next_token
, presume-se que todos os resultados já foram percorridos. A paginação não deve ser usada para fins de polling. Para obter os resultados mais recentes desde a solicitação anterior, consulte o uso de since_id
para polling.
Para navegar pelos resultados de uma solicitação: A paginação oferece opções direcionais para navegar pelos resultados de uma solicitação, usando os valores next_token
e previous_token
das respostas. Esses tokens podem ser informados como pagination_token
na solicitação seguinte para ir para a próxima ou a página anterior de resultados.
Definições de tokens de paginação
next_token
- String opaca retornada no objeto meta na resposta de endpoints que oferecem suporte à paginação. Indica que há mais resultados disponíveis e pode ser usada como o parâmetropagination_token
na próxima solicitação para retornar a próxima página de resultados. A última página de resultados não terá umnext_token
.previous_token
- String opaca retornada no objeto meta na resposta de endpoints que oferecem suporte à paginação. Indica que há uma página anterior de resultados disponível e pode ser usada como o parâmetropagination_token
na próxima solicitação para retornar a página anterior de resultados.pagination_token
- Parâmetro usado em solicitações de paginação. Defina-o com o valor denext_token
para obter a próxima página de resultados. Defina-o com o valor deprevious_token
para obter a página anterior de resultados.
Fundamentos da paginação
- Endpoints que usam paginação responderão a uma solicitação inicial com a primeira página de resultados e fornecerão um
next_token
dentro do objeto meta na resposta JSON, se houver páginas adicionais de resultados disponíveis. Para receber todos os resultados, repita esse processo até que nenhumnext_token
seja incluído na resposta.- Os resultados são retornados em ordem cronológica inversa. Isso vale dentro de páginas individuais e também entre várias páginas:
- O primeiro Post na primeira resposta será o mais recente.
- O último Post na última resposta será o mais antigo.
- O parâmetro de requisição
max_results
permite configurar o número de Posts retornados por página de resposta. Há um valor padrão e um valor máximo paramax_results
. - Toda implementação de paginação envolverá extrair tokens do payload da resposta, que podem ser usados em solicitações subsequentes.
- Em algumas circunstâncias, você pode receber menos do que o
max_results
por página. Não presuma que os resultados por página sempre serão iguais ao valor do parâmetromax_results
. - As melhores maneiras de usar paginação para obter resultados completos são utilizando lógica de loop no código de integração ou usando uma biblioteca que ofereça suporte à X API v2.
- Os resultados são retornados em ordem cronológica inversa. Isso vale dentro de páginas individuais e também entre várias páginas:
Exemplo de paginação
max_results
está definido como 100
, e existem aproximadamente 295 Posts criados pelo usuário de ID 2244994945
(@XDevelopers) entre 1º de janeiro de 2019 às 17:00:00 UTC e 12 de dezembro às 00:00:00 UTC. O primeiro Post da primeira página (1337498609819021312
) é o mais recente, e o último Post da terceira página de resultados (1082718487011885056
) é o mais antigo.
Solicitação inicial
Tabela de sequência
Primeira solicitação | Segunda página | Terceira página | Quarta página | |
---|---|---|---|---|
Parâmetros da solicitação | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z - pagination_token = 7140w | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z - pagination_token = 7140k9 | - max_results = 100 - tweet.fields = created_at - start_time = 2019-01-01T17:00:00Z - end_time = 2020-12-12T01:00:00Z - pagination_token = 71408hi |
Resposta | json { "data": [ { "created_at": "2020-12-11T20:44:52.000Z", "id": "1337498609819021312", "text": "Thanks to everyone who tuned in today..." }, ... , { "created_at": "2020-05-06T17:24:31.000Z", "id": "1258085245091368960", "text": "It’s now easier to understand Tweet impact..." } ], "meta": { "oldest_id": "1258085245091368960", "newest_id": "1337498609819021312", "result_count": 100, "next_token": "7140w" } } | json { "data": [ { "created_at": "2020-04-29T17:01:44.000Z", "id": "1255542797765013504", "text": "Our developer community is full of inspiring ideas..." }, ... , { "created_at": "2019-11-21T16:17:23.000Z", "id": "1197549579035496449", "text": "Soon, we'll be releasing tools in..." } ], "meta": { "oldest_id": "1197549579035496449", "newest_id": "1255542797765013504", "result_count": 100, "next_token": "7140k9", "previous_token": "77qp8" } } | json { "data": [ { "created_at": "2019-11-21T16:17:23.000Z", "id": "1197549578418941952", "text": "We know that some people who receive a large volume of replies may..." }, ... , { "created_at": "2019-01-08T19:19:37.000Z", "id": "1082718487011885056", "text": "Updates to Grid embeds..." } ], "meta": { "oldest_id": "1082718487011885056", "newest_id": "1197549578418941952", "result_count": 95, "next_token": "71408hi", "previous_token": "77qplte" } } | json { "meta": { "result_count": 0, "previous_token": "77qpw8l" } } |
Ações para a próxima solicitação | Para obter a próxima página, use o valor de next_token diretamente da resposta (7140w ) e defina-o como pagination_token na próxima chamada. | Para continuar obtendo todos os resultados: use o valor de next_token diretamente da resposta (7140k9 ) e defina-o como pagination_token na próxima chamada. Para voltar para a página anterior: use o valor de previous_token diretamente da resposta (77qp8 ) e defina-o como pagination_token na próxima chamada. | Para continuar obtendo todos os resultados: use o valor de next_token diretamente da resposta (71408hi ) e defina-o como pagination_token na próxima chamada. Para voltar para a página anterior: use o valor de previous_token diretamente da resposta (77qplte ) e defina-o como pagination_token na próxima chamada. | Observe que não há next_token , o que indica que todos os resultados foram recebidos. Para voltar para a página anterior: use o valor de previous_token diretamente da resposta (77qpw8l ) e defina-o como pagination_token na próxima chamada. |