Lingara Lingara Tài liệu Cẩm nang API Thư viện Ứng dụng Tạo Ứng dụng web
Ngôn ngữ: Tiếng Việt

TypeScript

Trang này được dịch từ tiếng Anh. Nếu hai bản khác nhau, trang tiếng Anh là bản đúng. Đọc trang tiếng Anh

Thư viện TypeScript là gói @lingara/api trên npm. Thư viện chạy trên Node.js 22 trở lên, không có phụ thuộc lúc chạy, và đi kèm định nghĩa kiểu cho mọi yêu cầu, phản hồi và sự kiện luồng.

Nơi thư viện chạy

Đây là thư viện phía máy chủ. Không có bản dựng cho trình duyệt, và máy khách sẽ từ chối khóa bí mật máy khách khi nhận thấy mình đang chạy trong một trang web: khóa bí mật máy khách trong trình duyệt là một bí mật đã bị công khai, ai mở trang cũng đọc được. Hãy gọi API từ máy chủ của bạn và chỉ gửi cho người dùng những gì họ cần.

Cách sử dụng

  • Mọi lệnh gọi đều trả về một promise. Truyền { signal } cùng một AbortSignal để hủy lệnh gọi; khi đó lệnh gọi bị từ chối với lý do của chính tín hiệu.
  • Luồng là một đối tượng lặp bất đồng bộ, được đọc bằng for await. Luồng có tính lười: yêu cầu chỉ được gửi khi bạn yêu cầu sự kiện đầu tiên.
  • Các lỗi kế thừa LingaraError, nên một phép kiểm tra instanceof bắt được cả bốn loại. Mỗi lỗi mang theo retryAfter khi API có nêu thời gian chờ.
  • Để dùng ngăn xếp HTTP của riêng bạn, hãy truyền một hàm fetch trong phần tùy chọn. Thời gian chờ khi rảnh của luồng vẫn được áp dụng.

Các mẫu dưới đây cài đặt gói, tạo máy khách, phát trực tuyến một danh sách từ vựng và xử lý lỗi.

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

Những gì trang này bao bọc