Lingara Lingara لارښود لارښودونه API کتابتونونه اپلیکیشنونه جوړول ویب اپلیکیشن
ژبه: پښتو

Java

دا پاڼه له انګلیسي ژبې ژباړل شوې ده. که دواړه سره توپیر ولري، انګلیسي پاڼه سمه ده. انګلیسي پاڼه ولولئ

د Java کتابتون په Maven Central کې com.getlingara:lingara-java دی. دا Java 17 یا نوي ته اړتیا لري او د JDK خپل java.net.http.HttpClient کاروي، او د JSON لپاره Jackson.

په عمل کې څنګه دی

  • کالونه همغږي دي. د ډېرو لپاره په یوه وخت، هغوی په مجازي تارونو یا یوه اجرا کوونکي کې وچلوئ.
  • جریان یو EventStream دی، چې هم Iterable دی او هم AutoCloseable: هغه د try-with-resources دننه د for حلقې په مرسته ولولئ. پېښې د یوه مهر شوي انټرفېس لاندې ریکارډونه دي، نو پر هغوی یو switch بشپړ دی.
  • د لغوه کولو لپاره، تار مداخله کړئ یا له بل تار close() ته کال وکړئ. بیا کال CancellationException غورځوي، چې د کتابتون له تېروتنو څخه نه ده.
  • تېروتنې له LingaraException میراث اخلي، چې یو ناکتل شوی استثنا ده. retryAfter() یو Optional<Duration> بېرته ورکوي.
  • کلاینټ په LingaraClient.builder() جوړ کړئ. هغه کال چې جریان نه وي تر هغه مهلت نه لري چې تاسو requestTimeout وټاکئ.

لاندې بېلګې تړاو اضافه کوي، یو کلاینټ جوړوي، د لغتونو یو لېست په جریان کې راوړي او یوه تېروتنه اداره کوي.

Java

<dependency>
  <groupId>com.getlingara</groupId>
  <artifactId>lingara-java</artifactId>
  <version>0.1.0-alpha.6</version>
</dependency>

Java

import com.getlingara.client.LingaraClient;

LingaraClient client =
    LingaraClient.builder()
        .clientCredentials(
            System.getenv("LINGARA_CLIENT_ID"), System.getenv("LINGARA_CLIENT_SECRET"))
        .build();

Java

import com.getlingara.client.model.GenerateVocabularyEvent;
import com.getlingara.client.model.VocabRequest;

VocabRequest request = new VocabRequest().level(2).sourceLang("en").targetLang("zh").count(8);
try (EventStream<GenerateVocabularyEvent> stream = client.generateVocabulary(request)) {
  for (GenerateVocabularyEvent event : stream) {
    if (event instanceof GenerateVocabularyEvent.Item item) {
      System.out.println(item.data().getWord() + " " + item.data().getTranslation());
    }
  }
}

Java

try {
  client.getUsage();
} catch (LingaraException e) {
  if (e instanceof ApiException api) {
    // A refusal from the API: status(), code() (stable) and getMessage() (localised).
    System.out.println(api.status() + " " + api.code() + " " + api.getMessage());
    api.retryAfter().ifPresent(wait -> System.out.println("retry after " + wait));
  } else if (e instanceof OAuthException oauth) {
    // The token endpoint refused the credentials or the scopes.
    System.out.println(oauth.status() + " " + oauth.error() + " " + oauth.description());
  } else if (e instanceof MaintenanceException maintenance) {
    System.out.println("under maintenance");
    maintenance.retryAfter().ifPresent(wait -> System.out.println("retry after " + wait));
  } else if (e instanceof TransportException transport) {
    // No usable answer: CONNECT, TLS, RESET, TIMEOUT, and so on.
    System.out.println("transport: " + transport.kind());
  }
}
// An interrupted call throws java.util.concurrent.CancellationException instead.

دا پاڼه څه رانغاړي