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

TypeScript

Tämä sivu on käännetty englannista. Jos ne eroavat toisistaan, englanninkielinen sivu on oikea. Lue englanninkielinen sivu

TypeScript-kirjasto on npm-rekisterin paketti @lingara/api. Se toimii Node.js 22 -versiossa tai uudemmassa, sillä ei ole ajonaikaisia riippuvuuksia, ja se sisältää tyyppimäärittelyt jokaiselle pyynnölle, vastaukselle ja virtatapahtumalle.

Missä se toimii

Se on palvelinpuolen kirjasto. Selainversiota ei ole, ja asiakas kieltäytyy asiakassalaisuudesta, kun se huomaa olevansa verkkosivulla: selaimessa oleva asiakassalaisuus on julkaistu salaisuus, jonka kuka tahansa sivun avaava voi lukea. Kutsu API-rajapintaa omalta palvelimeltasi ja lähetä käyttäjillesi vain se, mitä he tarvitsevat.

Miltä se näyttää

  • Jokainen kutsu palauttaa promisen. Anna { signal } ja AbortSignal peruuttaaksesi kutsun; kutsu hylätään silloin signaalin omalla syyllä.
  • Virta on async iterable, jota luetaan for await -silmukalla. Se on laiska: pyyntö lähetetään, kun pyydät ensimmäistä tapahtumaa.
  • Virheet laajentavat LingaraError-luokkaa, joten yksi instanceof-tarkistus sieppaa kaikki neljä. Jokainen sisältää retryAfter-arvon, kun API ilmoitti odotusajan.
  • Käyttääksesi omaa HTTP-pinoasi anna asetuksissa fetch-funktio. Virtojen joutoaikakatkaisu on silti voimassa.

Alla olevat esimerkit asentavat paketin, luovat asiakkaan, virtauttavat sanastoluettelon ja käsittelevät virheen.

TypeScript

npm install @lingara/api@0.1.0-alpha.6

TypeScript

import { Lingara } from "@lingara/api";

const client = new Lingara({
  clientId: process.env.LINGARA_CLIENT_ID!,
  clientSecret: process.env.LINGARA_CLIENT_SECRET!,
});

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

TypeScript

import { ApiError, MaintenanceError, OAuthError, TransportError } from "@lingara/api";

try {
  await client.getUsage();
} catch (e) {
  if (e instanceof ApiError) {
    // A refusal from the API: e.status, e.code (stable) and e.message (localised).
    console.error(e.status, e.code, e.message, e.retryAfter ?? "");
  } else if (e instanceof OAuthError) {
    // The token endpoint refused the credentials or the scopes.
    console.error(e.status, e.error, e.description ?? "");
  } else if (e instanceof MaintenanceError) {
    console.error("under maintenance; retry after", e.retryAfter ?? "a while");
  } else if (e instanceof TransportError) {
    // No usable answer: connect, tls, reset, timeout, and so on.
    console.error("transport:", e.kind);
  } else {
    throw e;
  }
}

Mitä tämä sivu kääri