Atualmente, a Zendesk oferece paginação baseada em deslocamento para quase todos os seus pontos de extremidade da REST API atuais. Ainda que isso seja adequado para a maioria dos casos de uso de pequena escala (por exemplo, solicitações que não excedam o equivalente a 10 páginas de dados), quando usado em larga escala com deslocamentos de página altos, há uma sobrecarga exponencial na infraestrutura. Essas solicitações de compensação alta resultam em tempos de resposta altos e baixo desempenho, pois, para cada nova página solicitada, o trabalho de montar as páginas anteriores precisa acontecer primeiro.
Para fornecer uma experiência de desenvolvedor melhor e um desempenho mais rápido para nossos clientes, em breve migraremos principalmente para a paginação baseada em cursor e implementaremos limites em solicitações de compensação de página muito altas.
- O que é paginação baseada em cursor?
- Como e por que estamos fazendo essas mudanças?
- Limites da paginação com base em deslocamento
- Como posso começar a implementar essas mudanças?
- Quais pontos de extremidade têm suporte?
O que é paginação baseada em cursor?
A paginação baseada em cursor funciona usando um ponteiro para um item específico em um conjunto de dados para marcar seu progresso. Essencialmente, isso funciona como uma espécie de marcador que permite solicitar o próximo lote de itens no conjunto de dados ao colocar o cursor nas solicitações subsequentes. Em vez de obter a próxima página para iterar pelos itens, você fornece o cursor fornecido na resposta anterior. Isso tem a vantagem de permitir resultados mais rápidos para volumes altos.
Como e por que estamos fazendo essas mudanças?
Em breve, a Zendesk fará alterações para aprimorar o uso da API em larga escala. Isso inclui a disponibilização ampla da paginação baseada em cursor, começando com nossa usuários, tickets e tags antes de, por fim, adicionar a maioria de nossos pontos de extremidade ao longo de 2021.
A paginação em deslocamento continuará a ser oferecida com um escopo e profundidade significativamente limitados. Isso inclui a limitação de solicitações de compensação muito altas (solicitações acima de 1.000 páginas), o que terá vários resultados, mais positivos, para os grandes consumidores de nossas APIs.
Os benefícios da paginação baseada em cursor incluem:
- As solicitações não sofrerão mais com o tempo limite extremamente alto encontrado ao fazer solicitações com números de páginas muito altos. Isso resultará em um desempenho mais rápido para quase todas as integrações que exigem a análise de conjuntos inteiros de recursos página por página.
- As solicitações que usam a paginação baseada em cursor não representam mais o risco para a infraestrutura que a paginação com base em deslocamento de muitas páginas apresenta, desde interrupções de serviço até incidentes devido à sobrecarga na infraestrutura.
- Para integrações que usam paginação baseada em deslocamento para exportar um conjunto inteiro de recursos, mudar para a paginação baseada em cursor é relativamente fácil, exigindo pouco trabalho para preparar as integrações para a mudança. Em vez de pegar uma next_page , a integração pode usar o parâmetrocursor para uma nova página.
Consulte esta página para obter uma comparação mais detalhada.
Limites da paginação com base em deslocamento
A Zendesk gostaria que todo o tráfego que pode usar a paginação baseada em cursor abandone a paginação baseada em deslocamento.
Para incentivar essa mudança, a partir de 15 de setembro de 2021, a Zendesk implementará limites de taxa para solicitações acima de 1.000 páginas (100.000 recursos). Para solicitações acima de 1.000 páginas, as contas serão limitadas 10 solicitações por minuto.
Isso retardará (mas não impedirá) as solicitações que sobrecarregam desproporcionalmente nossa infraestrutura. Se uma solicitação com mais de 1.000 páginas for feita mais rápido que 10 vezes por minuto, uma resposta 429 será fornecida e a solicitação precisará ser tentada novamente mais tarde. A mensagem de erro também indicará o tempo restante antes que os usuários possam enviar sua próxima solicitação e continuar a pesquisa.
As solicitações feitas usando a paginação baseada em cursor não terão um limite semelhante e terão um desempenho mais rápido do que as solicitações de deslocamento de página alta.
Como posso começar a implementar essas mudanças?
Recomendamos que você planeje mudar para a paginação baseada em cursor assim que possível. Consulte Paginação de listas usando paginação baseada em cursor. Depois de examinar as alterações e discuti-las internamente, pedimos que você analise alguns itens:
- Garantir que as integrações que continuarem a usar a paginação baseada em deslocamento o façam dentro dos nossos limites.
- Revise as partes de suas integrações que usam a API especificamente para coletar todos os dados disponíveis ou apenas criar relatórios sobre as alterações. Eles costumam ser os candidatos ideais para o armazenamento de dados.
- Se estiver usando o ponto de extremidade para coletar todos os dados disponíveis, comece a mudar para a paginação baseada em cursor.
- Se estiver usando a API para criar relatórios sobre alterações diárias, comece a usar nossas APIs incrementais, que permitiria um grande volume de todos os dados relevantes para esse caso de uso. Usar a paginação baseada em cursor para sua exportação inicial e depois alternar para a API Incremental a fim de capturar as alterações reduzirá significativamente as chamadas necessárias para coletar dados relevantes.
- Se estiver fazendo solicitações para várias páginas paralelamente, considere a opção incremental acima, pois a paginação paralelizada não é suportada e é muito desgastante para nossa infraestrutura.
Quais pontos de extremidade têm suporte?
Para obter uma lista de pontos de extremidade que dão suporte à paginação por cursor, consulte Pontos de extremidade com recurso CBP no anúncio sobre os limites de paginação baseados em deslocamento.
Se após essa análise você tiver mais dúvidas ou preocupações, ficaremos felizes em discutir com você e suas equipes de engenharia e integrações.
Obrigado por dedicar um tempo para analisar esses pontos. Estamos ansiosos para trabalhar com você em um futuro próximo para criar ferramentas melhores, mais rápidas e mais dimensionáveis para atender melhor aos seus clientes.
Aviso sobre a tradução: este artigo foi traduzido por um software de tradução automática para oferecer a você uma compreensão básica do conteúdo. Medidas razoáveis foram tomadas para fornecer uma tradução precisa, no entanto, a Zendesk não garante a precisão da tradução.
Em caso de dúvidas relacionadas à precisão das informações contidas no artigo traduzido, consulte a versão oficial do artigo em inglês.