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âmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
pagination[page] | number | 1 | Número da página (começa em 1) |
pagination[perpage] | number | — | Registros 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:
carspara veículos,driverspara condutores,companiespara 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
| Campo | Descrição |
|---|---|
current_page | Página atual |
per_page | Registros por página |
total | Total de registros no banco |
last_page | Número da última página |
data | Array de registros da página atual |
Navegar entre páginas
# 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ículosGET /key/companies— EmpresasGET /key/list-drivers— CondutoresGET /key/trips— Viagens (formato diferente — ver nota acima)