Lingara Lingara Dokumentasyon Mga gabay API Mga library Mga app Gumawa Web app
Wika: Filipino

TypeScript

Isinalin mula sa Ingles ang pahinang ito. Kung magkaiba ang dalawa, ang pahinang Ingles ang tama. Basahin ang pahinang Ingles

Ang TypeScript library ay ang package na @lingara/api sa npm. Tumatakbo ito sa Node.js 22 o mas bago, walang runtime dependency, at may kasamang type definition para sa bawat request, response at stream event.

Kung saan ito tumatakbo

Isa itong server-side na library. Walang build para sa browser, at tinatanggihan ng client ang client secret kapag natuklasan nitong nasa loob ito ng isang pahina: ang client secret sa browser ay isang secret na nailathala na, na mababasa ng sinumang magbukas ng pahina. Tawagin ang API mula sa sarili mong server at ipadala lamang sa iyong mga user ang kailangan nila.

Paano ito gamitin

  • Ang bawat tawag ay nagbabalik ng promise. Ipasa ang { signal } na may AbortSignal para kanselahin ang isa; pagkatapos ay nire-reject ang tawag gamit ang sariling dahilan ng signal.
  • Ang stream ay isang async iterable, na binabasa gamit ang for await. Lazy ito: ipinapadala ang request kapag hiningi mo ang unang event.
  • Ang mga error ay nag-e-extend ng LingaraError, kaya nasasalo ng iisang instanceof na pagsusuri ang apat. Dala ng bawat isa ang retryAfter kapag nagtakda ang API ng paghihintay.
  • Para gamitin ang sarili mong HTTP stack, magpasa ng fetch function sa mga option. Umiiral pa rin ang idle timeout sa mga stream.

Ini-install ng mga halimbawa sa ibaba ang package, gumagawa ng client, nag-i-stream ng listahan ng bokabularyo at humahawak ng error.

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

Ang binabalot ng pahinang ito