Pagination
Les points de terminaison de liste renvoient les résultats page par page, du plus récent au plus ancien, à l’aide de curseurs.
Paramètres
| Paramètre | Description |
|---|---|
limit | Nombre d’objets par page, entre 1 et 100. Valeur par défaut : 20. |
cursor | Le next_cursor de la page précédente. Omettez-le pour la première page. |
L’objet liste
json
{
"object": "list",
"data": [ { "id": "tkt_7Hc1vQ", "object": "ticket", "...": "..." } ],
"has_more": true,
"next_cursor": "eyJpZCI6InRrdF83SGMxdlEifQ"
}Lorsque has_more vaut false, vous avez atteint la fin et next_cursor vaut null. Les curseurs sont opaques ; ne les construisez pas et ne les modifiez pas. Les filtres doivent rester identiques d’une page à l’autre.
Récupérer toutes les pages
async function* allTickets(filters = {}) {
let cursor
do {
const params = new URLSearchParams({ ...filters, limit: "100" })
if (cursor) params.set("cursor", cursor)
const res = await fetch(`https://api.yuno.chat/v1/tickets?${params}`, {
headers: { Authorization: `Bearer ${process.env.YUNO_SECRET_KEY}` },
})
const page = await res.json()
yield* page.data
cursor = page.next_cursor
} while (cursor)
}
for await (const ticket of allTickets({ status: "open" })) {
console.log(ticket.number, ticket.subject)
}