Pagination und Sortierung handhaben

Zuletzt aktualisiert: vor 3 Monaten

Die API gibt Suchergebnisse in Seiten zurück. So navigieren Sie effizient durch große Ergebnislisten.

Grundlegende Pagination

POST /resources
{
  "query": "saints",
  "page": 1,
  "page_size": 20
}
Antwort:
{
  "total": 1523,
  "page": 1,
  "page_size": 20,
  "results": [ ... 20 items ... ]
}

Die Antwort zeigt Ihnen, dass es insgesamt 1.523 Ergebnisse gibt und Sie Seite 1 mit 20 Einträgen ansehen.

Gesamtseiten berechnen

const totalPages = Math.ceil(response.total / response.page_size);
// 1523 / 20 = 76.15 → 77 Seiten

Nächste Seite laden

// Einfache nächste Seite
currentPage++;
// Oder Pagination-UI aufbauen
for (let page = 1; page <= totalPages; page++) {
  // Seiten-Schaltfläche erstellen
}

Seitengröße optimieren

Wählen Sie die Seitengröße entsprechend Ihrem Anwendungsfall:

Kleine Seiten (10-20 Einträge):

  • Schnelleres anfängliches Laden

  • Gut für nutzerseitige Suche

  • Mehr API-Anfragen erforderlich

Große Seiten (50-100 Einträge):

  • Weniger API-Anfragen

  • Gut für Stapelverarbeitung

  • Langsamere einzelne Anfragen

  • Maximum sind 100 Einträge

Sortieroptionen

Beliebt (Standard):

{
  "order": "popular"
}

Gibt zuerst die am häufigsten heruntergeladenen Ressourcen zurück. Am besten, um qualitativ hochwertige, bewährte Inhalte anzuzeigen.

Neueste:

{
  "order": "recent"
}

Gibt zuerst die neuesten Uploads zurück. Gut, um frische Inhalte zu entdecken.

Beispiel für unendliches Scrollen

let currentPage = 1;
const pageSize = 20;
let isLoading = false;
let hasMore = true;
async function loadMore() {
  if (isLoading || !hasMore) return;
  
  isLoading = true;
  
  const response = await fetch('https://api.cathopic.com/resources', {
    method: 'POST',
    headers: {
      'x-api-key': apiKey,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      query: 'prayer',
      page: currentPage,
      page_size: pageSize,
      order: 'popular'
    })
  });
  
  const data = await response.json();
  
  // Ergebnisse zur UI hinzufügen
  appendResults(data.results);
  
  // Prüfen, ob es weitere Seiten gibt
  const totalPages = Math.ceil(data.total / pageSize);
  hasMore = currentPage < totalPages;
  
  currentPage++;
  isLoading = false;
}
// Beim Scrollen auslösen
window.addEventListener('scroll', () => {
  if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 500) {
    loadMore();
  }
});

Tipps zur Performance

  • Ergebnisse lokal cachen, um redundante Anfragen zu vermeiden

  • Passende Seitengrößen für Ihren Anwendungsfall verwenden

  • Ladezustände implementieren, um die Nutzererfahrung zu verbessern

  • Bei sehr großen Listen Virtualisierung in Betracht ziehen

  • Nicht alle Seiten auf einmal abrufen – bei Bedarf laden

Weitere Details finden Sie in der vollständigen Dokumentation unter api.cathopic.com/docs.

War dieser Artikel hilfreich?