Paginação e Filtros

Paginação

A API SkyHub, oferece a funcionalidade de paginação dos resultados obtidos nas consultas de pedidos e produtos. Para tal, basta especificar a faixa de registros a serem retornados pela API fazendo uso dos parâmetros:

  • page: indica o número da página de registros que será retornada. Caso não seja especificado, a primeira página será retornada (valor padrão 1);

  • per_page: indica a quantidade de registros a serem retornados. Em ambos recursos (produtos e pedidos), per_page possui 100 como valor padrão e valor limite (valor máximo).

No exemplo abaixo, a SkyHub – API retornará os produtos no intervalo de 101-200:

GET https://api.skyhub.com.br/products?page=2&per_page=100

Limitação - Deep paging

O que acontece se for solicitada a página 100.000 com 100 registros por página?

GET https://api.skyhub.com.br/products?page=100000&per_page=100

Teríamos que percorrer 10.000.000 de entradas no nosso índice para encontrar os registros da página solicitada. O tempo de resposta seria muito alto e a requisição resultaria em timeout.

Para evitar esse problema, o número máximo de entradas que percorremos no nosso índice é de 10.000 entradas. Para qualquer solicitação de uma página que esteja além das 10.000 primeiras entradas, será retornado um erro de bad request (HTTP status 400).

Uma forma de mitigar essa limitação é a utilização de filtros (Leia o artigo "Filtros" a seguir).

Paginação por cursor

Atualmente utilizamos a paginação por cursor para o Endpoint /products. Sempre que for feita uma requisição no Endpoint /products e o Response desta requisição ultrapassar a quantidade de 100 produtos, no rodapé do Response será disponibilizada uma opção chamada "next", contendo a URL da próxima página da consulta.

Essa feature não esta disponível para o endpoint / orders.

Filtros

A API SkyHub oferece a funcionalidade de filtrar os resultados obtidos nas consultas de pedidos e produtos fazendo uso de query params:

GET https://api.skyhub.com.br/products?status=enabled

Na query do exemplo acima, serão retornados todos os produtos que tenham o status com o valor enabled.

Exemplo no cURL:

curl --request GET \
--url 'https://api.skyhub.com.br/products?status=enabled' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-User-Email: seu@email.com' \
--header 'X-Api-Key: YOUR-API-KEY-HERE' \
--header 'X-Accountmanager-Key: token_account'

Os campos disponíveis para filtro estão descritos na documentação de cada método da API. Visite o nosso API Explorer! {COLOCAR LINK}