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.