개요
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-imageword-arrange,blank-fill,typingphonics-distinction(confusablePair 기반)listening-word,listening-meaningmultiple-choice,match-pair,true-falseexample-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": "りんご" }
}
}