日本語

SDK 설치

MOAI Cloud Node.js SDK는 7개 모듈을 단일 클라이언트에서 제공합니다. fetch 기반이며 Node 18+, Deno, Bun, Edge Runtime에서 모두 동작합니다.

설치

bash
npm install @moai/cloud-sdk
# 또는
pnpm add @moai/cloud-sdk
yarn add @moai/cloud-sdk

7개 모듈

단일 클라이언트에서 6개 모듈에 접근합니다. 사용하지 않는 모듈은 트리쉐이킹으로 번들에서 제거됩니다.

typescript
import { MoaiCloud } from '@moai/cloud-sdk';

const client = new MoaiCloud({ apiKey: process.env.MOAI_API_KEY! });

client.lingua;   // 30개 언어 단어/퀴즈
client.notify;   // 푸시 알림
client.admesh;   // 광고 서빙
client.anon;     // 익명 보드
client.oracle;   // SBTI/만세력
client.chat;     // WebSocket 채팅

빠른 시작 예제

example.ts
import { MoaiCloud } from '@moai/cloud-sdk';

const moai = new MoaiCloud({
  apiKey: process.env.MOAI_API_KEY!,
  // baseUrl: 'https://api.moai.page/v1',  // 기본값
  // timeoutMs: 10000,
});

// 1) 단어 조회
const word = await moai.lingua.getWord('apple');

// 2) 채팅방 생성
const { room } = await moai.chat.createRoom({
  type: 'group',
  name: 'Study Group',
  creatorExternalUserId: 'u_12345',
  memberExternalUserIds: ['u_12345'],
});

// 3) 푸시 발송
await moai.notify.send({
  userId: 'u_12345',
  title: '학습 시간',
  body: '오늘의 단어를 풀어보세요.',
});

TypeScript

모든 응답은 strict 타입으로 제공됩니다. Word, QuizItem, Leaderboard 등의 타입을 직접 import할 수 있습니다.

typescript
import type { Word, QuizItem } from '@moai/cloud-sdk';

function render(word: Word) {
  return word.langData.ko?.word ?? word.conceptKey;
}

지원 런타임

  • Node.js 18+ (fetch 내장)
  • Deno 1.30+ / Bun 1.0+
  • Vercel Edge / Cloudflare Workers
  • React Native 0.72+ (Hermes)
  • 브라우저 — 권장하지 않음 (API Key 노출 위험, 자체 백엔드 프록시 필수)