Skip to content

SDK

JavaScript SDKを使うと、サーバーサイドのJavaScriptまたはTypeScriptからYouViCo 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.listForFile("FX1234567890ABCD");

APIリファレンスページでは、各エンドポイントで利用できる CLISDKcURL の例を示しているため、対応するインターフェースを選択できます。

ファイルをアップロードする

ほとんどのファイルアップロードでは 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 オプションには BlobBufferArrayBufferUint8Arraystring も渡せます。

コメント添付ファイルをアップロードする

ファイルコメントには commentAttachments.uploadForFile、プロジェクトコメントには commentAttachments.uploadForProject を使用します。このヘルパーはマルチパートアップロードを開始し、すべてのパートをアップロードしてから添付ファイルアップロードを完了します。

このヘルパーは pathdata 入力をサポートします。data にはファイルアップロードと同様に BlobBufferArrayBufferUint8Arraystring を渡せます。

ts
const attachment = await client.commentAttachments.uploadForFile("FX1234567890ABCD", {
  name: "review-note.pdf",
  path: "/Users/me/documents/review-note.pdf",
});

await client.comments.createForFile("FX1234567890ABCD", {
  content: "レビュー用のメモを追加しました。",
  attachments: [{ id: attachment.id }],
});

エラーを処理する

成功しなかったAPIレスポンスは YouvicoError をスローします。

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いいえリクエストタイムアウト(ミリ秒)
headersいいえすべてのリクエストに追加するヘッダー