Lingara Lingara Dokumentasi Panduan API Pustaka Aplikasi Buat Aplikasi web
Bahasa: Bahasa Indonesia

Ruby

Halaman ini diterjemahkan dari bahasa Inggris. Jika keduanya berbeda, halaman bahasa Inggris yang benar. Baca halaman bahasa Inggris

Pustaka Ruby adalah gem lingara di RubyGems. Pustaka ini membutuhkan Ruby 3.3 atau lebih baru dan menggunakan Net::HTTP dari pustaka standar, tanpa gem lain.

Cara pemakaiannya

  • Panggilan bersifat sinkron. Satu klien dapat dipakai bersama antar-thread, dan tetap benar setelah fork.
  • Berikan block ke panggilan streaming dan setiap event akan di-yield ke block itu. Tanpa block, Anda mendapatkan stream Enumerable sebagai gantinya, yang bersifat lazy: permintaan dikirim pada each atau next pertama. Stream yang dibaca dengan next membutuhkan close secara eksplisit.
  • Cocokkan event dengan case dan in.
  • Untuk menghentikan stream lebih awal, keluar dari block dengan break, atau panggil close.
  • Error merupakan turunan Lingara::Error. retry_after adalah jumlah detik, atau nil jika API tidak menyebutkan waktu tunggu.
  • Buat klien dengan argumen kata kunci ke Lingara::Client.new. Opsi untuk Net::HTTP dimasukkan ke net_http_options; batas waktu bacanya juga menjadi batas waktu diam stream.

Contoh di bawah ini memasang gem, membuat klien, men-stream daftar kosakata, dan menangani error.

Ruby

gem install lingara -v 0.1.0-alpha.6

Ruby

require "lingara"

client = Lingara::Client.new(client_id: client_id, client_secret: client_secret)

Ruby

client.generate_vocabulary(level: 2, source_lang: "en", target_lang: "zh", count: 8) do |event|
  case event
  in Lingara::GenerateVocabularyEventItem => item then puts "#{item.data.word}: #{item.data.translation}"
  else nil
  end
end

Ruby

begin
  client.get_usage
rescue Lingara::ApiError => e
  # A refusal from the API: status, code (stable) and message (localised).
  puts "#{e.status} #{e.code}: #{e.message}"
  puts "retry after #{e.retry_after}s" if e.retry_after
rescue Lingara::OAuthError => e
  # The token endpoint refused the credentials or the scopes.
  puts "#{e.status} #{e.error}: #{e.description}"
rescue Lingara::MaintenanceError => e
  puts "under maintenance"
  puts "retry after #{e.retry_after}s" if e.retry_after
rescue Lingara::TransportError => e
  # No usable answer: :connect, :tls, :reset, :timeout, and so on.
  puts "transport: #{e.kind}"
end

Yang dibungkus halaman ini