Skip to content

SDK

JavaScript SDK는 서버 사이드 JavaScript 또는 TypeScript에서 YouViCo API를 가장 쉽게 호출하는 방법입니다. HTTP API 위에 API 키 인증, 타입이 있는 요청 파라미터와 응답 타입, 타임아웃, 에러 처리, 멀티파트 파일 업로드 헬퍼를 제공합니다.

WARNING

API 키는 비밀 정보입니다. SDK는 신뢰할 수 있는 서버 사이드 코드에서만 사용하고, 브라우저 코드나 공개 저장소에 API 키를 노출하지 마세요.

설치

bash
pnpm add @youvico/api
bash
npm install @youvico/api

클라이언트 생성

ts
import { Client } from "@youvico/api";

const client = new Client({
  apiKey: process.env.YOUVICO_API_KEY!,
});

엔드포인트 호출

SDK는 리소스별로 엔드포인트를 묶어 제공합니다.

ts
const projects = await client.projects.search({
  query: "launch",
});

const folders = await client.folders.list("bdbff5de-96d7-468f-9db0-85fe28bd6b62");

const comments = await client.comments.list("FX1234567890ABCD");

각 API 레퍼런스 페이지에는 CLI, SDK, cURL 예시가 함께 있어 커맨드라인 워크플로우, SDK 호출, 원본 HTTP 요청을 탭으로 전환해 볼 수 있습니다.

파일 업로드

대부분의 파일 업로드는 files.upload를 사용하세요. 멀티파트 업로드 시작, 파트 업로드, 업로드 완료 요청을 SDK가 처리합니다.

ts
const uploaded = await client.files.upload("bdbff5de-96d7-468f-9db0-85fe28bd6b62", {
  name: "launch.mp4",
  path: "/Users/me/videos/launch.mp4",
});

data 옵션으로 Blob, Buffer, ArrayBuffer, Uint8Array, string도 전달할 수 있습니다.

에러 처리

성공하지 못한 API 응답은 YouvicoError를 throw합니다.

ts
import { YouvicoError } from "@youvico/api";

try {
  await client.projects.get("bdbff5de-96d7-468f-9db0-85fe28bd6b62");
} catch (error) {
  if (error instanceof YouvicoError) {
    console.error(error.status, error.code, error.message);
  }

  throw error;
}

클라이언트 옵션

ts
const client = new Client({
  apiKey: process.env.YOUVICO_API_KEY!,
  timeoutMs: 30_000,
});
옵션필수설명
apiKey요청 인증에 사용할 YouViCo API 키
baseUrl아니오API Base URL 재정의
fetch아니오사용자 정의 fetch 구현
timeoutMs아니오요청 타임아웃(ms)
headers아니오모든 요청에 추가할 헤더