Lingara Lingara Documentatie Gidsen API Bibliotheken Apps Bouwen Webapp
Taal: Nederlands

Opnieuw verbinden met een lesplan

API-versie 2026-10-affable-towhee

get https://api.getlingara.com/v1/lesson-plans/{id}/stream

Sluit opnieuw aan bij de voortgangsstream van een plan dat nog wordt gegenereerd. Een voltooid plan antwoordt met één result. Een plan dat nog wordt gegenereerd zonder actieve stream om bij aan te sluiten, antwoordt met één pending; poll GET /v1/lesson-plans/{id} totdat het voltooid is.

Bevoegdheden lesson_plans:read

Parameters

Lingara-Versionheaderstringoptioneel
De API-versie waaronder dit verzoek wordt beantwoord. Zonder deze krijgt een toegangstoken de versie waaraan zijn client is gekoppeld, en een verzoek zonder token de huidige versie. De versie die nog in ontwikkeling is, bereik je alleen door die hier te noemen. Een onbekende versie geeft 400 met code api_version_unknown. GET /v1/versions toont de versies.
idpathstringverplicht

Antwoorden

200 De resterende voortgang van het plan, daarna het plan

Stream-events text/event-stream

Stuurt elke 15 seconden een keepalive-commentaar.

started PlanStarted
plan_idstringverplicht
phase PlanPhase
phasestringverplicht
attemptintegerverplicht
result PlanResult Beëindigt de stream
planLessonPlanverplicht
idstringverplicht
statusPlanStatusverplicht
titlestring | nulloptioneel
source_langstringverplicht
target_langstringverplicht
levelintegerverplicht
created_atstringverplicht
completed_atstring | nulloptioneel
ai_generatedbooleanverplicht
contentLessonPlanContent | nulloptioneel
introductionstring | nulloptioneel
learning_objectivesarray of stringverplicht
vocabularyarray of PlanWordverplicht
wordstringverplicht
pronunciationstring | nulloptioneel
translationstringverplicht
setsarray of PlanSetverplicht
numberintegerverplicht
contextstring | nulloptioneel
questionsarray of PlanQuestionverplicht
typestringverplicht
promptstringverplicht
optionsarray of string | nulloptioneel
answerstringverplicht
explanationstringverplicht
hintstring | nulloptioneel
pending PlanPending Beëindigt de stream
plan_idstringverplicht
statusPlanStatusverplicht
error StreamError Beëindigt de stream

Komt binnen het 200-antwoord aan. De statusregel is al verzonden, dus een fout nadat de stream is geopend wordt als deze gebeurtenis gemeld.

codestringverplicht
messagestringverplicht
plan_idstring | nulloptioneel

Fouten

410application/json
De API-versie waaronder dit verzoek wordt beantwoord, is stopgezet. Stuur een ondersteunde versie mee in Lingara-Version, of koppel de client aan een andere versie.
4XXapplication/json
Het verzoek is geweigerd. code geeft de reden aan en error beschrijft die in woorden.
503application/json · text/plain
De dienst is tijdelijk niet beschikbaar; probeer het opnieuw na het aantal seconden in Retry-After. Tijdens onderhoud is de body platte tekst in plaats van de foutenvelop.
5XXapplication/json
Het verzoek is geweigerd. code geeft de reden aan en error beschrijft die in woorden.
codestringverplicht

Waarom het verzoek is geweigerd, als stabiele code om op te vertakken: bijvoorbeeld insufficient_scope (403), rate_limited (429) en, voor een client met verbruiksafrekening, spend_cap_reached (402) en metered_billing_inactive (402).

errorstringverplicht

Voorbeeld

Taal van het codevoorbeeld

curl

curl -N "https://api.getlingara.com/v1/lesson-plans/$ID/stream" \
  -H "Authorization: Bearer $LINGARA_TOKEN"

TypeScript

for await (const ev of client.streamLessonPlan({ id: planId })) {
  if (ev.event === "result") console.log("ready:", ev.data.plan.title);
  if (ev.event === "pending") console.log("still", ev.data.status, "- try again later");
}

Rust

use lingara::models::StreamLessonPlanEvent;

let mut stream = client.stream_lesson_plan(&plan_id).await?;
while let Some(event) = stream.next().await {
    match event? {
        StreamLessonPlanEvent::Result(result) => println!("ready: {}", result.plan.title.unwrap_or_default()),
        StreamLessonPlanEvent::Pending(pending) => println!("still {:?} - try again later", pending.status),
        _ => {}
    }
}

Go

// Rejoin a plan still generating, with the plan_id from its started event.
s, err := client.StreamLessonPlan(ctx, "3f1c2a9e-5b7d-4e21-9a0c-6d8e4f2b1a37")
if err != nil {
	return err
}
defer s.Close()
for ev, err := range s.Events() {
	if err != nil {
		return err
	}
	switch e := ev.(type) {
	case lingara.StreamLessonPlanEventResult:
		fmt.Println("ready:", e.Data.Plan.ID)
	case lingara.StreamLessonPlanEventPending:
		fmt.Println("still", e.Data.Status, "- rejoin later")
	}
}

Java

import com.getlingara.client.model.StreamLessonPlanEvent;

try (EventStream<StreamLessonPlanEvent> stream = client.streamLessonPlan(planId)) {
  for (StreamLessonPlanEvent event : stream) {
    if (event instanceof StreamLessonPlanEvent.Result result) {
      System.out.println(result.data().getPlan().getTitle());
    } else if (event instanceof StreamLessonPlanEvent.Pending pending) {
      // Still generating elsewhere: ask again later.
      System.out.println("pending: " + pending.data().getStatus());
    }
  }
}

Kotlin

import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.StreamLessonPlanEvent

client.streamLessonPlan(planId).use { stream ->
    stream.collect { event ->
        when (event) {
            is StreamLessonPlanEvent.Result -> println(event.data.plan.title)
            // Still generating elsewhere: ask again later.
            is StreamLessonPlanEvent.Pending -> println("pending: ${event.data.status}")
            else -> Unit
        }
    }
}

Ruby

client.stream_lesson_plan(plan_id) do |event|
  case event
  in Lingara::StreamLessonPlanEventResult => result then puts "ready: #{result.data.plan.title}"
  in Lingara::StreamLessonPlanEventPending => pending then puts "still #{pending.data.status}, try again later"
  else nil
  end
end

PHP

use Lingara\Stream\StreamLessonPlanEvent;

foreach ($client->streamLessonPlan($planId) as $event) {
    if ($event instanceof StreamLessonPlanEvent\Result) {
        echo 'ready: ', $event->data->getPlan()->getTitle(), "\n";
    } elseif ($event instanceof StreamLessonPlanEvent\Pending) {
        echo 'still ', $event->data->getStatus()->value, ", try again later\n";
    }
}

Liever een bibliotheek? Zie de sectie Bibliotheken.

Voorbeeldstream

event: pending
data: {"plan_id":"3f1c2a9e-5b7d-4e21-9a0c-6d8e4f2b1a37","status":"generating"}

Als een vertaling afwijkt van de Engelse referentie, is de Engelse referentie juist.