Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sugestão: adicionar ordenação por id nas cobranças (charges) #15

Open
giovannibonetti opened this issue Jun 21, 2019 · 0 comments
Open

Comments

@giovannibonetti
Copy link
Contributor

TLDR: a chamada list_charges não aceita o parâmetro sort_by: id. Mas seria vantajoso do lado do servidor se aceitasse, pois a paginação é mais eficiente.


Aqui na empresa usamos bastante a API da Vindi para carregar dados em lote, com várias chamadas para carregar todos os registros de um recurso (por conta da paginação). Daí percebemos que o recurso charges não permite ordenação por id. Isso é diferente de outros recursos como customers e subscriptions, onde podemos usar isso para fazer uma paginação eficiente passando o último id da resposta anterior:

vindi_client.list_customers(per_page: 50, sort_by: 'id', query: "id>#{last_id}")

Dessa forma, para carregar em lotes as cobranças (charges) é necessário utilizar um offset:

vindi_client.list_charges(per_page: PAGE_SIZE, page: current_page + 1)

Fazer paginação por id no lugar de offset seria bom tanto para o cliente quanto o servidor.

  • Para o servidor é bom porque usa menos recursos do banco de dados;
  • Para o cliente é bom porque a paginação é mais estável (por exemplo, se for removido um registro na tabela durante o carregamento em lote)

Este artigo explica porque a paginação sem OFFSET é mais eficiente no banco de dados.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant