Перейти к содержимому

Страницы и курсоры

Как операции получения списков делят результаты на страницы и как прочитать следующую.

Страницы с курсором

Операции получения списков отвечают полями items и nextCursor. Чтобы прочитать следующую страницу, отправьте тот же запрос ещё раз, указав в cursor полученный nextCursor. Если nextCursor равен null, страниц больше нет.

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

Чтение всех страниц

Не меняйте остальные параметры, пока идёте по курсору. Курсор непрозрачен: не составляйте и не изменяйте его сами и не храните долго, потому что порядок может меняться по мере обновления каталога.

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)

Размер страницы

Если операция принимает limit, на её странице в справочнике указаны значение по умолчанию и наибольшее допустимое значение. Запрос больше наибольшего значения возвращает ошибку 400, а не укороченную страницу.

«Обзор» использует номера страниц

Фасетный поиск, на котором работает страница «Обзор», считает результаты, а не следует за курсором. Он принимает page и отвечает полями found, page и pageSize, вплоть до страницы 100.

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