Paginación
Cursor, página y límite en los listados de Admin y Storefront.
Los listados de Admin y los listados de cuenta de Storefront se paginan por
cursor. El catálogo de Storefront (GET /) se pagina por número de
página. Cada operación en la referencia muestra cuál usa.
| Esquema | Parámetros | Dónde |
|---|---|---|
| Cursor | cursor, limit | Casi todos los listados de Admin; en Storefront, reseñas, pedidos del cliente y ubicaciones. |
| Página | page, pageSize | Storefront GET / y Admin GET /. |
| Límite | limit | Listas cortas sin continuación: productos relacionados, recomendaciones y zonas geográficas. |
Por cursor
Pide la primera página sin cursor. Para la siguiente, envía el nextCursor
de la respuesta anterior con los mismos filtros y orden.
curl "https://api.ecomiq.pe/api/v1/catalog/brands?limit=50" \
-H "Authorization: Bearer $ECOMIQ_TOKEN"{
"data": [{ "id": "7204558912004324355", "name": "Andes" }],
"hasNextPage": true,
"nextCursor": "eyJpZCI6IjcyMDQ1NTg5MTIwMDQzMjUzMDEifQ",
"totalCount": 132
}| Parámetro | Valor |
|---|---|
limit | De 1 a 200. Si lo omites, la mayoría de listados devuelve 20. |
cursor | El nextCursor de la página anterior. Omítelo en la primera. |
sortBy | Campo de orden; los valores aceptados están en cada operación. |
sortDirection | asc o desc. |
search | Texto libre. |
| Campo | Significado |
|---|---|
data | Los elementos de esta página. |
hasNextPage | true si queda al menos otra página. |
nextCursor | Cursor de la siguiente página; null en la última. |
totalCount | Total de coincidencias. Puede ser null. |
Algunos listados tienen un tope menor que 200, por ejemplo 100, y devuelven
como máximo ese número aunque pidas más. Un limit fuera de 1–200 responde
400. Un cursor que no se puede leer responde 400 con
Common.InvalidCursor.
async function* walkByCursor(firstUrl: URL, token: string) {
let cursor: string | null = null;
do {
const url = new URL(firstUrl);
if (cursor) url.searchParams.set("cursor", cursor);
const response = await fetch(url, {
headers: { Authorization: `Bearer ${token}` },
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const page = await response.json();
yield* page.data;
cursor = page.hasNextPage ? page.nextCursor : null;
} while (cursor);
}Por página
page empieza en 1. En GET / de Storefront, pageSize va de 1 a
100 (por defecto 24) y page llega hasta 100.
curl "https://storefront.ecomiq.pe/v1/products?page=2&pageSize=24" \
-H "x-Store-Domain: mi-tienda"La respuesta trae pageIndex, pageSize, totalCount y totalPages, y los
productos en products. Avanza page mientras pageIndex sea menor que
totalPages.
GET / de Admin devuelve data, pageIndex,
totalPages, hasPreviousPage y hasNextPage; ahí pageSize va de 1 a 100.
Solo límite
Estas operaciones devuelven una lista corta y no tienen página siguiente.
limit fija cuántos elementos quieres; para recorrer todo el recurso, usa su
listado por cursor.
Última actualización: