Paginación y filtrado
Los endpoints de lista de la API de Luna Health devuelven resultados en páginas para que puedas recuperar colecciones grandes de forma eficiente. Como la API es de solo lectura, paginas y filtras completamente con parámetros de consulta GET — no hay cuerpo de solicitud.
Pagina los resultados
Solicita una página a la vez y sigue solicitando hasta que una página llegue incompleta (o la respuesta indique que no hay página siguiente). Los parámetros exactos que acepta esta API se listan en Parámetros compatibles más abajo y en la página de referencia de cada endpoint.
# Obtén la primera página y luego la siguiente, ajustando los parámetros
curl "https://account.lunahealth.app/api/appointments?limit=50" \
-H "Authorization: Bearer TU_CLAVE_API"async function fetchAll(url, apiKey) {
const results = [];
let offset = 0;
const limit = 50;
for (;;) {
const res = await fetch(`${url}?limit=${limit}&offset=${offset}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const page = await res.json();
const items = Array.isArray(page) ? page : page.data ?? [];
results.push(...items);
if (items.length < limit) break;
offset += limit;
}
return results;
}import requests
def fetch_all(url, api_key, limit=50):
results, offset = [], 0
while True:
res = requests.get(
url,
params={"limit": limit, "offset": offset},
headers={"Authorization": f"Bearer {api_key}"},
)
page = res.json()
items = page if isinstance(page, list) else page.get("data", [])
results.extend(items)
if len(items) < limit:
break
offset += limit
return resultsFiltra los resultados
Reduce una lista añadiendo parámetros de consulta de filtro — por ejemplo, un rango de fechas, un estado o un término de búsqueda. Combina filtros con paginación para mantener las respuestas pequeñas y rápidas. Los filtros disponibles en cada endpoint se documentan en su página de referencia.
Buenas prácticas
- Solicita solo lo que necesitas: usa filtros y un tamaño de página razonable en lugar de traer todo.
- Maneja las páginas parciales correctamente — detente cuando una página devuelva menos elementos que el tamaño de página.
- Almacena en caché los resultados cuando sea apropiado y respeta cualquier límite de tasa indicado en los encabezados de respuesta.
Parámetros compatibles
| Nombre | Tipo | Descripción |
|---|---|---|
end_date | string | Fecha de fin opcional para filtrar (formato ISO) |
from | string (date-time) | Fecha de inicio opcional para filtrar por fecha de creación (formato ISO 8601) |
limit | number | Número de elementos por página |
page | number | Número de página (indexado en 0) |
query | string | Consulta de búsqueda para filtrar usuarios |
start_date | string | Fecha de inicio opcional para filtrar (formato ISO) |
status | string | Filtrar por estado |
to | string (date-time) | Fecha de fin opcional para filtrar por fecha de creación (formato ISO 8601) |