Страницы и курсоры
Как операции получения списков делят результаты на страницы и как прочитать следующую.
Страницы с курсором
Операции получения списков отвечают полями items и nextCursor. Чтобы прочитать следующую страницу, отправьте тот же запрос ещё раз, указав в cursor полученный nextCursor. Если nextCursor равен null, страниц больше нет.
curl "https://api.nogitsu.com/v1/works?limit=3&cursor=eyJ2YWx1ZSI6MSwiaWQiOiIwMWEwY2IwYS0zN2MxLTc5NDYtYmUzOC1iZmM5ZjFhNWFmMGUifQ"Чтение всех страниц
Не меняйте остальные параметры, пока идёте по курсору. Курсор непрозрачен: не составляйте и не изменяйте его сами и не храните долго, потому что порядок может меняться по мере обновления каталога.
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.
curl "https://api.nogitsu.com/v1/search/works/explore?medium=anime&genres=fantasy&page=2"