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 sebuahAbortSignaluntuk 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 semakaninstanceofmenangkap keempat-empatnya. Setiap satu membawaretryAfterapabila API menyatakan tempoh menunggu. - Untuk menggunakan tindanan HTTP anda sendiri, hantar fungsi
fetchdalam 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.6TypeScript
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;
}
}