TypeScript
Hierdie bladsy is uit Engels vertaal. As die twee verskil, is die Engelse bladsy korrek. Lees die Engelse bladsy
Die TypeScript-biblioteek is die @lingara/api-pakket op npm. Dit loop op Node.js 22 of later, het geen looptyd-afhanklikhede nie, en lewer tipedefinisies vir elke versoek, antwoord en stroomgebeurtenis.
Waar dit loop
Dit is ‘n bedienerkant-biblioteek. Daar is geen blaaierbou nie, en die kliënt weier ‘n kliëntgeheim wanneer dit agterkom dat dit in ‘n bladsy loop: ‘n kliëntgeheim in ‘n blaaier is ‘n gepubliseerde geheim, leesbaar vir enigiemand wat die bladsy oopmaak. Roep die API vanaf jou eie bediener aan en stuur jou gebruikers net wat hulle nodig het.
Hoe dit lees
- Elke oproep gee ‘n promise terug. Gee
{ signal }met ‘nAbortSignaldeur om een te kanselleer; die oproep word dan verwerp met die sein se eie rede. - ‘n Stroom is ‘n async iterable, gelees met
for await. Dit is lui: die versoek word gestuur wanneer jy vir die eerste gebeurtenis vra. - Foute brei
LingaraErroruit, so eeninstanceof-toets vang al vier. Elkeen draretryAfterwanneer die API ‘n wagtyd genoem het. - Om jou eie HTTP-stapel te gebruik, gee ‘n
fetch-funksie in die opsies deur. Die ledige uitteltyd op strome geld steeds.
Die voorbeelde hieronder installeer die pakket, skep ‘n kliënt, stroom ‘n woordelys en hanteer ‘n fout.
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;
}
}