Pular para o conteúdo principal

Paginação

Os endpoints de listagem da API Frota162 v1 usam paginação via query params. Você controla a página e o tamanho dos resultados na URL.

Query params

ParâmetroTipoPadrãoDescrição
pagination[page]number1Número da página (começa em 1)
pagination[perpage]numberRegistros por página

Exemplo de requisição

curl -X GET \
'https://apidev.v1.frota162.com.br/key/list-cars?pagination[page]=1&pagination[perpage]=10' \
-H 'Authorization: Basic SEU_ACCESS_TOKEN' \
-H 'Key: SUA_ASSINATURA_HMAC' \
-H 'cache-control: no-cache'

Formato de resposta

A maioria dos endpoints de listagem (veículos, condutores, empresas) retorna os dados paginados dentro de uma chave nomeada:

{
"cars": {
"current_page": 1,
"data": [
{ "id": 1, "car_plate": "ABC1234" },
{ "id": 2, "car_plate": "DEF5678" }
],
"total": 42,
"per_page": "10",
"last_page": 5
},
"error": false,
"code": "fbk_200"
}

O nome da chave raiz varia por endpoint: cars para veículos, drivers para condutores, companies para empresas.

Viagens (/key/trips)

O endpoint de viagens usa um formato diferente — os dados ficam em message.pagination com campos em camelCase (currentPage, pageSize, totalPages).

Campos de paginação

CampoDescrição
current_pagePágina atual
per_pageRegistros por página
totalTotal de registros no banco
last_pageNúmero da última página
dataArray de registros da página atual
# Página 1
/key/list-cars?pagination[page]=1&pagination[perpage]=10

# Página 2
/key/list-cars?pagination[page]=2&pagination[perpage]=10

# Página 3
/key/list-cars?pagination[page]=3&pagination[perpage]=10

Buscar todos os registros

Para buscar todos os registros em lotes, itere enquanto current_page < last_page:

async function buscarTodos(endpoint, chave, headers) {
const todos = [];
let pagina = 1;
let ultimaPagina = 1;

while (pagina <= ultimaPagina) {
const url = `${endpoint}?pagination[page]=${pagina}&pagination[perpage]=50`;
const resposta = await fetch(url, { headers });
const dados = await resposta.json();

const paginado = dados[chave]; // ex: dados['cars']
todos.push(...paginado.data);

ultimaPagina = paginado.last_page;
pagina++;
}

return todos;
}

// Exemplo de uso:
// const veiculos = await buscarTodos('/key/list-cars', 'cars', headers);

Endpoints com paginação

Os seguintes endpoints suportam paginação:

  • GET /key/list-cars — Veículos
  • GET /key/companies — Empresas
  • GET /key/list-drivers — Condutores
  • GET /key/trips — Viagens (formato diferente — ver nota acima)