Aller au contenu

Pages et curseurs

Comment les opérations de liste découpent les résultats en pages et comment lire la suivante.

Pages à curseur

Les opérations de liste répondent avec items et nextCursor. Pour lire la page suivante, renvoyez la même requête avec cursor défini sur le nextCursor reçu. Quand nextCursor vaut null, il n’y a plus de pages.

Shell
curl "https://api.nogitsu.com/v1/works?limit=3&cursor=eyJ2YWx1ZSI6MSwiaWQiOiIwMWEwY2IwYS0zN2MxLTc5NDYtYmUzOC1iZmM5ZjFhNWFmMGUifQ"

Lire toutes les pages

Gardez les autres paramètres identiques pendant que vous suivez le curseur. Un curseur est opaque : ne le construisez pas et ne le modifiez pas vous-même, et ne le conservez pas longtemps, car l’ordre peut changer à mesure que le catalogue est mis à jour.

JavaScript
let cursor = null
do {
  const url = new URL('https://api.nogitsu.com/v1/works')
  url.searchParams.set('medium', 'anime')
  url.searchParams.set('limit', '50')
  if (cursor) url.searchParams.set('cursor', cursor)
  const page = await fetch(url).then((response) => response.json())
  for (const work of page.items) console.log(work.primaryTitle)
  cursor = page.nextCursor
} while (cursor)

Taille de page

Lorsqu’une opération accepte limit, sa page de référence indique la valeur par défaut et la plus grande valeur autorisée. Demander davantage que cette valeur renvoie une erreur 400 au lieu d’une page plus courte.

Explorer utilise des numéros de page

La recherche à facettes derrière la page Explorer compte les résultats au lieu de suivre un curseur. Elle accepte page et répond avec found, page et pageSize, jusqu’à la page 100.

Shell
curl "https://api.nogitsu.com/v1/search/works/explore?medium=anime&genres=fantasy&page=2"