Lingara Lingara ឯកសារ មគ្គុទ្ទេសក៍សិក្សា API បណ្ណាល័យ កម្មវិធី បង្កើត កម្មវិធីលើបណ្ដាញ
ភាសា: ខ្មែរ

TypeScript

ទំព័រនេះត្រូវបានបកប្រែពីភាសាអង់គ្លេស។ ប្រសិនបើទាំងពីរខុសគ្នា ទំព័រភាសាអង់គ្លេសគឺត្រឹមត្រូវ។ អានទំព័រភាសាអង់គ្លេស

បណ្ណាល័យ TypeScript គឺជាកញ្ចប់ @lingara/api នៅលើ npm។ វាដំណើរការលើ Node.js 22 ឬថ្មីជាងនេះ គ្មានការពឹងផ្អែកពេលដំណើរការ ហើយភ្ជាប់មកជាមួយនិយមន័យប្រភេទសម្រាប់សំណើ ការឆ្លើយតប និងព្រឹត្តិការណ៍ស្ទ្រីមនីមួយៗ។

កន្លែងដែលវាដំណើរការ

វាជាបណ្ណាល័យខាងម៉ាស៊ីនមេ។ គ្មានកំណែសម្រាប់កម្មវិធីរុករកទេ ហើយក្លាយអិនបដិសេធសម្ងាត់ក្លាយអិន នៅពេលវាដឹងថាខ្លួនកំពុងនៅក្នុងទំព័រវេប៖ សម្ងាត់ក្លាយអិនក្នុងកម្មវិធីរុករក គឺជាសម្ងាត់ដែលបានបង្ហាញជាសាធារណៈ ដែលអ្នកណាក៏អាចអានបាន ឱ្យតែបើកទំព័រនោះ។ ហៅ API ពីម៉ាស៊ីនមេផ្ទាល់ខ្លួនរបស់អ្នក ហើយផ្ញើទៅអ្នកប្រើប្រាស់របស់អ្នកតែអ្វីដែលពួកគេត្រូវការប៉ុណ្ណោះ។

របៀបប្រើវា

  • ការហៅនីមួយៗត្រឡប់ promise មួយ។ បញ្ជូន { signal } ជាមួយ AbortSignal ដើម្បីបោះបង់វា បន្ទាប់មកការហៅនឹងត្រូវបដិសេធដោយហេតុផលផ្ទាល់របស់ signal នោះ។
  • ស្ទ្រីមគឺជា async iterable ដែលអានដោយ for await។ វាខ្ជិល៖ សំណើត្រូវបានផ្ញើនៅពេលអ្នកស្នើព្រឹត្តិការណ៍ដំបូង។
  • កំហុសពង្រីកពី LingaraError ដូច្នេះការពិនិត្យ instanceof តែមួយចាប់បានទាំងបួន។ កំហុសនីមួយៗផ្ទុក retryAfter នៅពេល API បានប្រាប់ពេលរង់ចាំ។
  • ដើម្បីប្រើ stack HTTP ផ្ទាល់ខ្លួនរបស់អ្នក សូមបញ្ជូនមុខងារ fetch ក្នុងជម្រើស។ ការកំណត់ពេលទំនេរលើស្ទ្រីមនៅតែអនុវត្ត។

គំរូខាងក្រោមដំឡើងកញ្ចប់ បង្កើតក្លាយអិន ស្ទ្រីមបញ្ជីវាក្យសព្ទ និងដោះស្រាយកំហុសមួយ។

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

អ្វីដែលទំព័រនេះរុំ