페이지네이션
Conviction API 의 모든 list 엔드포인트는 offset 기반 페이지네이션 을 사용합니다. 커서나 페이지 번호 모델이 아닙니다.
#쿼리 파라미터
| Name | Type | Description | Default |
|---|---|---|---|
| limit | number | 한 번에 가져올 항목 수. | 20 (또는 엔드포인트별 상이) |
| offset | number | 건너뛸 항목 수. | 0 |
limit 은 일반적으로 1 ~ 100 사이로 제한됩니다 (엔드포인트별로 상한 다름).
#응답 envelope
{
"markets": [ /* ... */ ],
"total": 347,
"limit": 20,
"offset": 0
}| 필드 | 설명 |
|---|---|
markets (또는 orders, deposits...) | 실제 데이터 배열. 키 이름은 엔드포인트마다 다름. |
total | 필터를 적용한 후의 전체 항목 수 |
limit | 요청에서 받은 (또는 적용된 기본값) |
offset | 요청에서 받은 (또는 0) |
#다음 페이지
별도의 next URL 이 없습니다. 클라이언트가 직접 계산합니다.
const nextOffset = currentOffset + limit;
if (nextOffset >= total) {
// 끝
}#무한 스크롤 패턴
function buildUrl(offset: number, limit: number) {
const url = new URL('https://api.conviction.bet/v1/markets');
url.searchParams.set('status', 'ACTIVE');
url.searchParams.set('limit', limit.toString());
url.searchParams.set('offset', offset.toString());
return url.toString();
}
let offset = 0;
const limit = 20;
const all = [];
while (true) {
const res = await fetch(buildUrl(offset, limit)).then((r) => r.json());
all.push(...res.markets);
if (offset + limit >= res.total) break;
offset += limit;
}#정렬
list 엔드포인트는 보통 sortBy 와 sortOrder 를 함께 받습니다. 사용 가능한 값은 엔드포인트 스펙을 참고.
#다음
- REST → Markets — 가장 많이 쓰는 list 엔드포인트
이 페이지가 도움이 되었나요?