커뮤니티 (댓글 / 좋아요 / 시청 기록)
댓글
⚠️
cb.video.postComment는POST /v1/public/videos/:videoId/comments로 보내지만 백엔드의 GET 경로와 충돌해 작성이 불가합니다. 백엔드는POST /v1/public/comments(body 에video_id/content/parent_id전달)에 작성 핸들러를 두고 있습니다 — 정렬 전까지는 raw fetch 를 사용하세요.
// 댓글 목록 — 동작합니다
const result = await cb.video.getComments('video-id', { limit: 20 })
console.log(result)
// 댓글 삭제 — 동작합니다 (DELETE /v1/public/comments/:id)
await cb.video.deleteComment('comment-id')raw fetch 로 댓글 작성 (앱 멤버 JWT 필수):
const res = await fetch('https://api.connectbase.world/v1/public/comments', {
method: 'POST',
headers: {
'X-Public-Key': 'cb_pk_...',
'Authorization': 'Bearer ' + appMemberToken,
'Content-Type': 'application/json',
},
body: JSON.stringify({ video_id: 'video-id', content: '좋은 영상이네요!' }),
})
const comment = await res.json()좋아요
백엔드는 토글 패턴 단일 엔드포인트를 사용합니다 — POST /v1/public/videos/:videoId/like 를 호출할 때마다 좋아요가 토글됩니다.
// 좋아요 토글 (한 번 호출 = 좋아요, 다시 호출 = 좋아요 취소)
await cb.video.likeVideo('video-id')
// 현재 좋아요 여부 확인
const status = await fetch(
'https://api.connectbase.world/v1/public/videos/video-id/like/status',
{ headers: { 'X-Public-Key': 'cb_pk_...', 'Authorization': 'Bearer ' + appMemberToken } },
).then((r) => r.json())⚠️
cb.video.unlikeVideo는DELETE /v1/public/videos/:videoId/like를 호출하지만, 백엔드는POST(토글) 만 노출합니다. 좋아요 취소는likeVideo를 한 번 더 호출하세요.📌 SDK 에는
isLiked메서드가 없습니다 — 위like/status엔드포인트를fetch로 직접 호출해 확인하세요.
시청 기록
⚠️ 현재 SDK 의 시청 기록 메서드는 모두 백엔드에 라우트가 없습니다.
cb.video.getWatchHistory,cb.video.clearWatchHistory,cb.video.reportWatchProgress셋 모두/v1/public/watch-history또는/v1/public/videos/:videoId/watch-progress를 호출하지만, 백엔드는 해당 라우트를 노출하지 않아 404 가 반환됩니다.
대안으로 자체 tbl_watch_history 테이블에 cb.database 로 직접 기록하거나,
백엔드의 추천 시스템 라우트(/v1/public/recommendations/history 등)를 fetch 로 직접 호출하세요.