分页与游标
列表操作如何将结果分页,以及如何读取下一页。
游标分页
列表操作返回 items 和 nextCursor。要读取下一页,请将收到的 nextCursor 设为 cursor,再次发送相同的请求。当 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"