Lingara Lingara Documentación Guías API Bibliotecas Apps Crear Aplicación web
Idioma: Español

TypeScript

Esta página está traducida del inglés. Si ambas difieren, la página en inglés es la correcta. Leer la página en inglés

La biblioteca de TypeScript es el paquete @lingara/api en npm. Funciona con Node.js 22 o posterior, no tiene dependencias en tiempo de ejecución e incluye definiciones de tipos para cada petición, respuesta y evento de flujo.

Dónde se ejecuta

Es una biblioteca del lado del servidor. No hay versión para navegador, y el cliente rechaza un secreto de cliente cuando detecta que está dentro de una página: un secreto de cliente en un navegador es un secreto publicado, que puede leer cualquiera que abra la página. Llama a la API desde tu propio servidor y envía a tus usuarios solo lo que necesitan.

Cómo se usa

  • Cada llamada devuelve una promesa. Pasa { signal } con un AbortSignal para cancelar una; la llamada se rechaza entonces con el motivo propio de la señal.
  • Un flujo es un iterable asíncrono que se lee con for await. Es perezoso: la petición se envía cuando pides el primer evento.
  • Los errores extienden LingaraError, así que una sola comprobación con instanceof captura los cuatro. Cada uno incluye retryAfter cuando la API indicó una espera.
  • Para usar tu propia pila HTTP, pasa una función fetch en las opciones. El tiempo de inactividad de los flujos sigue aplicándose.

Los ejemplos de abajo instalan el paquete, crean un cliente, reciben en flujo una lista de vocabulario y gestionan un 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;
  }
}

Qué envuelve esta página