Lingara Lingara Dokumentasi Panduan API Pustaka Aplikasi Bina Apl web
Bahasa: Bahasa Melayu

TypeScript

Halaman ini diterjemahkan daripada bahasa Inggeris. Jika kedua-duanya berbeza, halaman bahasa Inggeris adalah yang betul. Baca halaman bahasa Inggeris

Pustaka TypeScript ialah pakej @lingara/api di npm. Ia berjalan pada Node.js 22 atau lebih baharu, tiada kebergantungan masa jalan, dan disertakan dengan definisi jenis untuk setiap permintaan, respons dan peristiwa strim.

Di mana ia berjalan

Ia ialah pustaka sebelah pelayan. Tiada binaan untuk pelayar, dan klien menolak rahsia klien apabila ia mendapati dirinya berada di dalam halaman web: rahsia klien dalam pelayar ialah rahsia yang telah didedahkan, boleh dibaca oleh sesiapa sahaja yang membuka halaman itu. Panggil API dari pelayan anda sendiri dan hantar kepada pengguna anda hanya apa yang mereka perlukan.

Cara ia digunakan

  • Setiap panggilan memulangkan promise. Hantar { signal } dengan sebuah AbortSignal untuk membatalkannya; panggilan itu kemudian ditolak dengan sebab milik signal itu sendiri.
  • Strim ialah async iterable, dibaca dengan for await. Ia bersifat malas: permintaan dihantar apabila anda meminta peristiwa pertama.
  • Ralat melanjutkan LingaraError, jadi satu semakan instanceof menangkap keempat-empatnya. Setiap satu membawa retryAfter apabila API menyatakan tempoh menunggu.
  • Untuk menggunakan tindanan HTTP anda sendiri, hantar fungsi fetch dalam pilihan. Had masa terbiar pada strim tetap terpakai.

Contoh di bawah memasang pakej, mencipta klien, menstrim senarai perbendaharaan kata dan mengendalikan ralat.

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

Perkara yang dibalut oleh halaman ini