Kurulum
Tek bir gem, çalışma zamanı bağımlılığı yok, Ruby 3.2 ve üzeri.
Kurulum
Güncel sürüm 0.0.1'dir. TypeScript SDK'sının her metodu için snake_case biçiminde aynı adı taşıyan bir metodu vardır ve gem'in eşlik denetimi, biri eksik olduğunda ya da farklı bir istek gönderdiğinde derlemeyi başarısız kılar.
bundle add openemailrequire "openemail" OpenEmail.init(api_key: ENV.fetch("OPENEMAIL_API_KEY")) email = OpenEmail.emails.send( from: "Acme Billing <[email protected]>", to: "[email protected]", subject: "Your September invoice", html: "<p>Invoice attached.</p>") puts email[:id], email[:status]OpenEmail.init paylaşılan istemciyi bir kez yapılandırır ve o andan itibaren OpenEmail.emails, OpenEmail.threads ve diğer tüm ad alanları her dosyada onu kullanır. Bunu atlarsanız ilk çağrı istemciyi bunun yerine OPENEMAIL_API_KEY değerinden kurar.
Yanıt, ayrıştırılmış JSON'un Symbol anahtarlı bir Hash hâlidir; bu yüzden email[:id] kimliği okur. Anahtarlar API'deki adlarını korur; scheduledAt gibi bir alanın camelCase kalmasının, metotların ve seçeneklerinin ise snake_case olmasının nedeni budur.
send çağrısının dönmesi iletinin gittiği anlamına gelmez. Zamanlanmış ya da iptal edilebilir bir gönderim queued veya scheduled olarak döner ve daha sonra sonuçlanır. Çağrının dönmüş olmasına değil, status değerine bakın.
Nerede çalışır
Ruby 3.2 ve üzeri, çalışma zamanı bağımlılığı olmadan. HTTP istemcisi standart kütüphanedeki Net::HTTP'dir ve açık tutulan (keep-alive) bağlantılardan oluşan bir havuz kullanır; bu yüzden API'ye yapılan ikinci istek, ilkinin açtığı bağlantıyı yeniden kullanır.
Tek bir istemci iş parçacıkları arasında güvenle paylaşılabilir; bu yüzden bir Puma ya da Sidekiq sürecinin yalnızca bir istemciye ihtiyacı vardır. Puma'nın küme modunda, Unicorn'da ya da Resque'te olduğu gibi bir fork'tan sonra alt süreç, üst sürecin bağlantılarını yeniden kullanmak yerine kendi bağlantılarını açar.
İstemci, posta gönderebilen ve posta kutusunu okuyabilen bir çalışma alanı API anahtarı taşır; bu yüzden yeri bir sunucu, bir iş ya da kendi makinenizde çalışan bir araçtır. Anahtarı Rails.application.credentials içinde ya da bir ortam değişkeninde tutun, asla kodda değil.