Lingara Lingara Dokumentasi Panduan API Pustaka Aplikasi Bina Apl web
Bahasa: Bahasa Melayu

Jana senarai kosa kata

Versi API 2026-10-affable-towhee

post https://api.getlingara.com/v1/vocab/stream

Menstrim senarai perkataan pada tahap yang diminta. Strim menghantar started dengan butiran senarai, satu peristiwa item bagi setiap perkataan, kemudian done. Sehingga senarai sedia, ia hanya menghantar komen keepalive.

Skop vocab:generate

Parameter

Lingara-Versionheaderstringpilihan
Versi API yang digunakan untuk menjawab permintaan ini. Tanpanya, token akses mendapat versi yang dipautkan kepada kliennya, dan permintaan tanpa token mendapat versi semasa. Versi yang masih dalam pembangunan hanya boleh dicapai dengan menamakannya di sini. Versi yang tidak dikenali dijawab 400 dengan kod api_version_unknown. GET /v1/versions menyenaraikan versi.

Kandungan permintaan application/json

levelintegerwajib
source_langstringwajib
target_langstringwajib
countinteger | nullpilihan

Respons

200 Senarai, satu perkataan bagi setiap peristiwa

Peristiwa strim text/event-stream

Menghantar komen keepalive setiap 15 saat.

started VocabStarted
metaVocabMetawajib
levelintegerwajib
source_langstringwajib
target_langstringwajib
frameworkstringwajib
countintegerwajib
ai_generatedbooleanwajib
item VocabItem
wordstringwajib
pronunciationstring | nullpilihan
readingstring | nullpilihan
translationstringwajib
exampleVocabExample | nullpilihan
sentencestringwajib
translationstringwajib
image_urlstring | nullpilihan
done Done Menamatkan strim
error StreamError Menamatkan strim

Tiba di dalam respons 200. Baris status telah pun dihantar, jadi kegagalan selepas strim dibuka dilaporkan sebagai peristiwa ini.

codestringwajib
messagestringwajib
plan_idstring | nullpilihan

Ralat

402application/json
Panggilan klien bermeter telah ditolak sebelum ia membelanjakan apa-apa. spend_cap_reached: klien atau akaunnya telah mencapai had perbelanjaan bulanannya; naikkan had di halaman Integrasi. metered_billing_inactive: pengebilan bermeter tidak aktif untuk akaun ini; sediakannya, atau kemas kini kaedah pembayaran, di halaman Integrasi.
410application/json
Versi API yang digunakan untuk menjawab permintaan ini telah dihentikan. Hantar versi yang disokong dalam Lingara-Version, atau pautkan klien kepada versi lain.
4XXapplication/json
Permintaan ditolak. code menyatakan sebabnya, dan error menerangkannya dengan perkataan.
503application/json · text/plain
Perkhidmatan tidak tersedia buat sementara waktu; cuba lagi selepas bilangan saat dalam Retry-After. Semasa penyelenggaraan, kandungan ialah teks biasa dan bukan sampul ralat.
5XXapplication/json
Permintaan ditolak. code menyatakan sebabnya, dan error menerangkannya dengan perkataan.
codestringwajib

Sebab permintaan ditolak, sebagai kod stabil untuk dijadikan asas percabangan: contohnya insufficient_scope (403), rate_limited (429) dan, bagi klien bermeter, spend_cap_reached (402) dan metered_billing_inactive (402).

errorstringwajib

Contoh

Bahasa contoh kod

curl

curl -N -X POST "https://api.getlingara.com/v1/vocab/stream" \
  -H "Authorization: Bearer $LINGARA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"level":2,"source_lang":"en","target_lang":"zh","count":8}'

TypeScript

const stream = client.generateVocabulary({ level: 2, source_lang: "en", target_lang: "zh", count: 8 });
for await (const ev of stream) {
  if (ev.event === "item") console.log(ev.data.word, ev.data.translation);
}

Rust

use lingara::models::{GenerateVocabularyEvent, VocabRequest};
use std::num::NonZeroU8;

let request = VocabRequest { level: 2, source_lang: "en".into(), target_lang: "zh".into(), count: NonZeroU8::new(8) };
let mut stream = client.generate_vocabulary(&request).await?;
while let Some(event) = stream.next().await {
    if let GenerateVocabularyEvent::Item(item) = event? {
        println!("{} {}", item.word, item.translation);
    }
}

Go

count := uint8(8)
s, err := client.GenerateVocabulary(ctx, lingara.VocabRequest{Level: 2, SourceLang: "en", TargetLang: "zh", Count: &count})
if err != nil {
	return err
}
defer s.Close()
for ev, err := range s.Events() {
	if err != nil {
		return err
	}
	if item, ok := ev.(lingara.GenerateVocabularyEventItem); ok {
		fmt.Println(item.Data.Word, item.Data.Translation)
	}
}

Java

import com.getlingara.client.model.GenerateVocabularyEvent;
import com.getlingara.client.model.VocabRequest;

VocabRequest request = new VocabRequest().level(2).sourceLang("en").targetLang("zh").count(8);
try (EventStream<GenerateVocabularyEvent> stream = client.generateVocabulary(request)) {
  for (GenerateVocabularyEvent event : stream) {
    if (event instanceof GenerateVocabularyEvent.Item item) {
      System.out.println(item.data().getWord() + " " + item.data().getTranslation());
    }
  }
}

Kotlin

import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.GenerateVocabularyEvent
import com.getlingara.kotlin.model.VocabRequest

val request = VocabRequest(level = 2, sourceLang = "en", targetLang = "zh", count = 8)
// The request is sent here; collect the stream once, inside use {}.
client.generateVocabulary(request).use { stream ->
    stream.collect { event ->
        when (event) {
            is GenerateVocabularyEvent.Item -> println("${event.data.word} ${event.data.translation}")
            is GenerateVocabularyEvent.Started -> Unit
        }
    }
}

Ruby

client.generate_vocabulary(level: 2, source_lang: "en", target_lang: "zh", count: 8) do |event|
  case event
  in Lingara::GenerateVocabularyEventItem => item then puts "#{item.data.word}: #{item.data.translation}"
  else nil
  end
end

PHP

use Lingara\Model\VocabRequest;
use Lingara\Stream\GenerateVocabularyEvent;

$request = new VocabRequest(['level' => 2, 'source_lang' => 'en', 'target_lang' => 'zh', 'count' => 8]);
foreach ($client->generateVocabulary($request) as $event) {
    if ($event instanceof GenerateVocabularyEvent\Item) {
        echo $event->data->getWord(), ': ', $event->data->getTranslation(), "\n";
    }
}

Lebih suka pustaka? Lihat bahagian Pustaka.

Contoh strim

event: started
data: {"meta":{"level":2,"source_lang":"en","target_lang":"zh","framework":"HSK","count":2,"ai_generated":true}}

event: item
data: {"word":"你好","pronunciation":"nǐ hǎo","translation":"hello","example":{"sentence":"你好,我叫小明。","translation":"Hello, my name is Xiaoming."}}

event: item
data: {"word":"谢谢","pronunciation":"xiè xie","translation":"thank you"}

event: done
data: {}

Jika terjemahan dan rujukan bahasa Inggeris berbeza, rujukan bahasa Inggeris adalah yang betul.