English

Lingua

30개 언어 단어 데이터와 13종 퀴즈를 제공하는 다국어 학습 API. 1,342개 개념(concept) × 6+ 언어 번역, A1~C2 CEFR 레벨, 음성/발음/예문/카테고리를 포함합니다.

개요

Lingua는 영어 기반 conceptKey(예: apple)를 중심으로 30개 언어 번역을 단일 문서에 저장하는 1-concept-1-document 구조입니다. 한 번의 요청으로 모든 언어 데이터를 받을 수 있어 클라이언트 캐싱과 오프라인 학습에 적합합니다.

엔드포인트

  • GET /v1/lingua/categories — 카테고리 목록
  • GET /v1/lingua/words?cefr=A1&category=food&limit=20 — 단어 목록
  • GET /v1/lingua/words/:conceptKey — 단일 단어
  • POST /v1/lingua/words/batch — conceptKey 배열로 일괄 조회
  • GET /v1/lingua/quiz?type=image-meaning&count=10 — 퀴즈 생성

예제

cURL

bash
curl -H "X-API-Key: $MOAI_API_KEY" \
  "https://api.moai.page/v1/lingua/words/apple"

SDK

typescript
const apple = await client.lingua.getWord('apple');
console.log(apple.langData.ko.word);   // 사과
console.log(apple.langData.ja.word);   // りんご
console.log(apple.cefrLevel);          // A1

// 카테고리/레벨 필터링
const a1Food = await client.lingua.listWords({
  cefr: 'A1',
  category: 'food',
  limit: 20,
});

// 퀴즈 10문항
const quiz = await client.lingua.generateQuiz({
  type: 'image-meaning',
  count: 10,
  cefr: 'A1',
});

13종 퀴즈

퀴즈 데이터는 사전 생성되어 있어 런타임 LLM 호출 없이 즉시 응답합니다.

  • image-meaning, meaning-image
  • word-arrange, blank-fill, typing
  • phonics-distinction(confusablePair 기반)
  • listening-word, listening-meaning
  • multiple-choice, match-pair, true-false
  • example-fill, part-of-speech

응답 스키마

json
{
  "conceptKey": "apple",
  "cefrLevel": "A1",
  "category": "food",
  "imageUrl": "https://cdn.moai.page/lingua/apple.jpg",
  "langData": {
    "ko": { "word": "사과", "pronunciation": "sa-gwa", "examples": ["나는 사과를 좋아한다."] },
    "en": { "word": "apple", "phonetic": "/ˈæp.əl/" },
    "ja": { "word": "りんご" }
  }
}