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