Kotlin
ئەم پەڕەیە لە ئینگلیزییەوە وەرگێڕدراوە. ئەگەر هەردووکیان جیاواز بوون، پەڕە ئینگلیزییەکە ڕاستە. پەڕە ئینگلیزییەکە بخوێنەوە
کتێبخانەی Kotlin بریتییە لە com.getlingara:lingara-kotlin لەسەر Maven Central. لەسەر JVM کار دەکات، پێویستی بە Java 17 و Kotlin 2.2 یان نوێترە، و kotlinx.coroutines و kotlinx.serialization بەکار دەهێنێت.
لە کرداردا چۆنە
- هەموو بانگکردنێک فەنکشنێکی
suspendـە. بۆ هەڵوەشاندنەوەی بانگکردنەکە کۆرووتینەکە هەڵبوەشێنەرەوە، یان بۆ کاتی کۆتاییwithTimeoutبەکار بهێنە؛CancellationExceptionـی خۆت دەبینیت، هەرگیز دانەیەکی پێچراو نا. - ستریمێک
EventStreamـێکە،Flowـێک کە یەک جار کۆی دەکەیتەوە. لەناوuseـدا کۆی بکەرەوە، بۆ ئەوەی کاتێک تەواو بوویت دابخرێت. ڕووداوەکان پۆلی داتان لە ژێر ڕووکارێکی مۆرکراودا، بەwhenیەکدەخرێن. - هەڵەکان لە پۆلی مۆرکراوی
LingaraExceptionمیرات دەگرن، بۆیەwhenـێک بەسەریاندا گشتگیرە.retryAfterDurationـێکە، یانnullکاتێک API هیچ چاوەڕوانییەکی دیاری نەکردبێت. - کلاینتێک بە دروستکەری
LingaraClient { }دروست بکە.HttpClientـی JDK بەکار دەهێنێت، کە دەتوانیت بە هی خۆت بیگۆڕیت.
نموونەکانی خوارەوە پشتبەستنەکە زیاد دەکەن، کلاینتێک دروست دەکەن، لیستێکی وشەسازی ستریم دەکەن و هەڵەیەک چارەسەر دەکەن.
Kotlin
implementation("com.getlingara:lingara-kotlin:0.1.0-alpha.6")Kotlin
import com.getlingara.kotlin.LingaraClient
val client =
LingaraClient {
clientCredentials(System.getenv("LINGARA_CLIENT_ID"), System.getenv("LINGARA_CLIENT_SECRET"))
}Kotlin
import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.GenerateVocabularyEvent
import com.getlingara.kotlin.model.VocabRequest
val request = VocabRequest(level = 2, sourceLang = "en", targetLang = "zh", count = 8)
// The request is sent here; collect the stream once, inside use {}.
client.generateVocabulary(request).use { stream ->
stream.collect { event ->
when (event) {
is GenerateVocabularyEvent.Item -> println("${event.data.word} ${event.data.translation}")
is GenerateVocabularyEvent.Started -> Unit
}
}
}Kotlin
try {
client.getUsage()
} catch (e: LingaraException) {
when (e) {
// A refusal from the API: status, code (stable) and message (localised).
is ApiException -> println("${e.status} ${e.code} ${e.message}; retry after ${e.retryAfter}")
// The token endpoint refused the credentials or the scopes.
is OAuthException -> println("${e.status} ${e.error} ${e.description}")
is MaintenanceException -> println("under maintenance; retry after ${e.retryAfter}")
// No usable answer: CONNECT, TLS, RESET, TIMEOUT, and so on.
is TransportException -> println("transport: ${e.kind}")
}
}
// A cancelled call throws the caller's own CancellationException instead.