Lingara Lingara Ohjeet Oppaat API Kirjastot Sovellukset Rakenna Verkkosovellus
Kieli: Suomi

Luo sanastolista

API-versio 2026-10-affable-towhee

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

Suoratoistaa sanaluettelon pyydetyllä tasolla. Virta lähettää started-tapahtuman listan tietoineen, yhden item-tapahtuman sanaa kohden ja lopuksi done. Ennen kuin lista on valmis, se lähettää vain keepalive-kommentteja.

Oikeuslaajuudet vocab:generate

Parametrit

Lingara-Versionheaderstringvalinnainen
API-versio, jolla tähän pyyntöön vastataan. Ilman sitä käyttötunnus saa version, johon sen asiakas on kiinnitetty, ja pyyntö ilman tunnusta saa nykyisen version. Vielä kehitteillä olevaan versioon pääsee vain nimeämällä sen tässä. Tuntemattomaan versioon vastataan 400 koodilla api_version_unknown. GET /v1/versions luettelee versiot.

Pyynnön runko application/json

levelintegerpakollinen
source_langstringpakollinen
target_langstringpakollinen
countinteger | nullvalinnainen

Vastaukset

200 Lista, yksi sana tapahtumaa kohden

Virran tapahtumat text/event-stream

Lähettää keepalive-kommentin 15 sekunnin välein.

started VocabStarted
metaVocabMetapakollinen
levelintegerpakollinen
source_langstringpakollinen
target_langstringpakollinen
frameworkstringpakollinen
countintegerpakollinen
ai_generatedbooleanpakollinen
item VocabItem
wordstringpakollinen
pronunciationstring | nullvalinnainen
readingstring | nullvalinnainen
translationstringpakollinen
exampleVocabExample | nullvalinnainen
sentencestringpakollinen
translationstringpakollinen
image_urlstring | nullvalinnainen
done Done Päättää virran
error StreamError Päättää virran

Saapuu 200-vastauksen sisällä. Tilarivi on jo lähetetty, joten virran avaamisen jälkeinen virhe ilmoitetaan tänä tapahtumana.

codestringpakollinen
messagestringpakollinen
plan_idstring | nullvalinnainen

Virheet

402application/json
Käytön mukaan laskutettavan asiakkaan kutsu hylättiin ennen kuin se kulutti mitään. spend_cap_reached: asiakas tai sen tili on saavuttanut kuukausittaisen kulutusrajansa; nosta rajaa Integraatiot-sivulla. metered_billing_inactive: käytön mukainen laskutus ei ole tällä tilillä käytössä; ota se käyttöön tai päivitä maksutapa Integraatiot-sivulla.
410application/json
API-versio, jolla tähän pyyntöön vastataan, on lopetettu. Lähetä tuettu versio Lingara-Version-otsakkeessa tai kiinnitä asiakas toiseen versioon.
4XXapplication/json
Pyyntö hylättiin. code kertoo syyn, ja error kertoo sen sanoin.
503application/json · text/plain
Palvelu ei ole tilapäisesti käytettävissä; yritä uudelleen Retry-After-otsakkeen ilmoittaman sekuntimäärän jälkeen. Huoltokatkon aikana runko on pelkkää tekstiä virhekehyksen sijaan.
5XXapplication/json
Pyyntö hylättiin. code kertoo syyn, ja error kertoo sen sanoin.
codestringpakollinen

Miksi pyyntö hylättiin, pysyvänä koodina, jonka mukaan voit haarautua: esimerkiksi insufficient_scope (403), rate_limited (429) ja käytön mukaan laskutettavalle asiakkaalle spend_cap_reached (402) ja metered_billing_inactive (402).

errorstringpakollinen

Esimerkki

Koodiesimerkin kieli

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";
    }
}

Käytätkö mieluummin kirjastoa? Katso Kirjastot-osio.

Esimerkkivirta

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: {}

Jos käännös ja englanninkielinen viite poikkeavat toisistaan, englanninkielinen viite on oikea.