Menú de la documentación

Desarrolladores

Paginación

Cómo paginar la lista de artículos de la API de Blogenia con page y limit, y cómo sincronizar solo las novedades.

Ver como Markdown

La lista de artículos se pagina con page y limit. El orden es siempre el de publicación, del más reciente al más antiguo.

Parámetros

NombreTipoObligatorioDescripción
pageintegerNoNúmero de página, desde 1 (por defecto 1). Máximo 500.
limitintegerNoArtículos por página, de 1 a 50 (por defecto 20).

Campos de la respuesta

CampoTipoDescripción
dataarrayArtículos de la página.
pageintegerPágina devuelta.
limitintegerTamaño de página aplicado.
totalintegerArtículos publicados que cumplen el filtro, en todas las páginas.

Hay más páginas mientras page * limit sea menor que total. Una página sin resultados devuelve data: [].

Recorrer todos los artículos
const base = 'https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0/articles';
const headers = { Authorization: 'Bearer ' + process.env.BLOGENIA_API_KEY };

const articles = [];
for (let page = 1; ; page++) {
  const res = await fetch(base + '?limit=50&page=' + page, { headers });
  if (!res.ok) throw new Error('HTTP ' + res.status);
  const body = await res.json();
  articles.push(...body.data);
  if (page * body.limit >= body.total) break;
}
import os
import requests

base = "https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0/articles"
headers = {"Authorization": "Bearer " + os.environ["BLOGENIA_API_KEY"]}

articles, page = [], 1
while True:
    res = requests.get(base, params={"limit": 50, "page": page}, headers=headers, timeout=10)
    res.raise_for_status()
    body = res.json()
    articles += body["data"]
    if page * body["limit"] >= body["total"]:
        break
    page += 1

Solo las novedades

Para no leer siempre toda la lista, usa publishedAfter (fecha ISO 8601) y recibirás solo los artículos publicados después de esa fecha. Guarda en tu sistema el publishedAt más reciente que hayas leído y úsalo en la siguiente consulta.