CAP에서 페이지 나누기, $top $skip 어떻게? #shorts #SAP #CAP

Moderator · 조회 3

CAP Pagination이란

SAP CAP for Node.js에서 OData 요청 시 $top과 $skip 파라미터로 페이지네이션을 구현합니다. CAP 런타임이 자동으로 처리합니다.

OData 쿼리 파라미터

// 첫 번째 페이지 (10개)
GET /Books?$top=10&$skip=0&$count=true

// 두 번째 페이지
GET /Books?$top=10&$skip=10&$count=true

CDS 서비스 자동 처리

// 별도 코드 없이 자동 지원
service BookShop {
  entity Books as projection on my.Books;
}

// 커스텀 핸들러 수동 처리
this.on('READ', Books, async (req) => {
  const { top, skip } = req.query.SELECT;
  return SELECT.from(Books).limit(top, skip);
});

응답 구조

{
  "@odata.count": 150,
  "value": [ /* top 개수만큼 */ ]
}

핵심 한 줄

$top/$skip은 CAP가 자동 처리 — 커스텀 핸들러에서는 .limit(top, skip)만 추가하면 됩니다.