Skip to content

Sayfalandırma

Chainabit API iki sayfalandırma stratejisini destekler: ofset tabanlı ve imleç tabanlı. Çoğu liste uç noktası ofset tabanlı sayfalandırma kullanır. İmleç tabanlı sayfalandırma, sayfalar arasında tutarlı sıralamanın kritik olduğu belirli uç noktalar tarafından (örneğin, bildirim geçmişi, denetim günlükleri) kullanılır.

Ofset Tabanlı Sayfalandırma

Sorgu Parametreleri

ParametreTürVarsayılanAralıkAçıklama
limitinteger201 -- 50Sayfa başına döndürülecek kayıt sayısı.
offsetinteger00+Sonuçları döndürmeden önce atlanacak kayıt sayısı.

Örnek İstek

http
GET /api/v1/chains?limit=10&offset=20
Authorization: Bearer <accessToken>

Örnek Yanıt

json
{
  "data": [
    { "id": "chain_001", "name": "Morning Run" },
    { "id": "chain_002", "name": "Read 20 Pages" }
  ],
  "meta": {
    "requestId": "req_abc123",
    "durationMs": 15,
    "limit": 10,
    "offset": 20,
    "total": 47,
    "hasNextPage": true
  }
}

Sayfalar Arasında Gezinme

Tüm sonuç kümesinde gezinmek için offset ve limit kullanın:

Sayfa 1: GET /chains?limit=20&offset=0   → kayıtlar 1-20
Sayfa 2: GET /chains?limit=20&offset=20  → kayıtlar 21-40
Sayfa 3: GET /chains?limit=20&offset=40  → kayıtlar 41-47

hasNextPage değeri false olduğunda veya offset + limit >= total olduğunda yinelemeyi durdurun.

İmleç Tabanlı Sayfalandırma

İmleç tabanlı sayfalandırma, sonuç kümesindeki konumu işaretlemek için opak bir belirteç kullanır. Bu, istekler arasında kayıt eklense veya kaldırılsa bile kararlı sayfalandırma sağlar.

Sorgu Parametreleri

ParametreTürVarsayılanAçıklama
limitinteger25Sayfa başına döndürülecek kayıt sayısı.
cursorstring(yok)Önceki bir yanıttan gelen opak sayfalandırma belirteci. İlk sayfa için atlayın.
http
GET /api/v1/notifications?limit=10
Authorization: Bearer <accessToken>

Örnek Yanıt

json
{
  "data": [
    { "id": "ntf_001", "type": "ai_run_completed", "read": false },
    { "id": "ntf_002", "type": "workspace_invite", "read": true }
  ],
  "meta": {
    "requestId": "req_def456",
    "durationMs": 22,
    "limit": 10,
    "hasNextPage": true,
    "nextCursor": "eyJpZCI6Im50Zl8wMDIifQ=="
  }
}

Örnek İstek

http
GET /api/v1/notifications?limit=10&cursor=eyJpZCI6Im50Zl8wMDIifQ==
Authorization: Bearer <accessToken>

Sayfalar Arasında Gezinme

  1. Bir cursor olmadan ilk isteği yapın.
  2. Eğer hasNextPage değeri true ise, cursor değerini önceki yanıttan gelen nextCursor olarak ayarlayarak başka bir istek yapın.
  3. hasNextPage değeri false olana kadar tekrarlayın.
javascript
let cursor = undefined;

do {
  const params = new URLSearchParams({ limit: '25' });
  if (cursor) params.set('cursor', cursor);

  const response = await fetch(
    `https://api.chainabit.com/api/v1/notifications?${params}`,
    { headers: { Authorization: `Bearer ${token}` } }
  );
  const { data, meta } = await response.json();

  // Veriyi işle...

  cursor = meta.hasNextPage ? meta.nextCursor : undefined;
} while (cursor);

Yanıt Meta Alanları

Her iki sayfalandırma stratejisi de meta verilerini yanıt meta nesnesinde içerir:

AlanTürBulunduğu YerAçıklama
limitintegerHer İkisiBu istek için kullanılan sayfa boyutu.
offsetintegerSadece OfsetAtlanan kayıt sayısı.
totalintegerSadece OfsetSorguyla eşleşen toplam kayıt sayısı.
hasNextPagebooleanHer İkisiBu sayfanın ötesinde daha fazla kayıt olup olmadığı.
nextCursorstringSadece İmleçSonraki sayfa için cursor olarak geçirilecek belirteç.

Hangi Uç Noktalar Hangi Stratejiyi Kullanır

StratejiUç Noktalar
Ofset tabanlıÇoğu liste uç noktası: chains, chainies, bits, boards, cards, agents, workflows, vb.
İmleç tabanlıBildirim geçmişi, denetim günlükleri ve diğer sıralı liste uç noktaları.

Her uç nokta için sayfalandırma stratejisi, bireysel uç nokta referansında belgelenmiştir.

Built with purpose.