Lingara Lingara Dokumentasi Panduan API Pustaka Aplikasi Buat Aplikasi web
Bahasa: Bahasa Indonesia

TypeScript

Halaman ini diterjemahkan dari bahasa Inggris. Jika keduanya berbeda, halaman bahasa Inggris yang benar. Baca halaman bahasa Inggris

Pustaka TypeScript adalah paket @lingara/api di npm. Pustaka ini berjalan di Node.js 22 atau lebih baru, tidak punya dependensi runtime, dan menyertakan definisi tipe untuk setiap permintaan, respons, dan event stream.

Tempat pustaka ini berjalan

Ini adalah pustaka sisi server. Tidak ada build untuk peramban, dan klien menolak secret klien ketika mendapati dirinya berada di dalam halaman web: secret klien di peramban adalah secret yang sudah dipublikasikan, dapat dibaca oleh siapa pun yang membuka halaman itu. Panggil API dari server Anda sendiri dan kirimkan kepada pengguna hanya apa yang mereka butuhkan.

Cara pemakaiannya

  • Setiap panggilan mengembalikan promise. Berikan { signal } dengan sebuah AbortSignal untuk membatalkannya; panggilan kemudian ditolak dengan alasan milik signal itu sendiri.
  • Stream adalah async iterable, dibaca dengan for await. Stream bersifat lazy: permintaan dikirim saat Anda meminta event pertama.
  • Error merupakan turunan LingaraError, sehingga satu pemeriksaan instanceof menangkap keempatnya. Masing-masing membawa retryAfter jika API menyebutkan waktu tunggu.
  • Untuk memakai stack HTTP Anda sendiri, berikan fungsi fetch di dalam opsi. Batas waktu diam pada stream tetap berlaku.

Contoh di bawah ini memasang paket, membuat klien, men-stream daftar kosakata, dan menangani 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;
  }
}

Yang dibungkus halaman ini