ドキュメント本文へスキップ
Ruby

変更履歴

gem のすべてのリリースを新しい順に掲載します。

0.0.1

最初のリリースです。このリリースを切った時点の TypeScript SDK 全体、つまり 0.0.8 とその後に予定されていた変更を網羅しています:41 の名前空間にわたる 430 のメソッドが、それぞれ TypeScript の名前を snake_case にした名前で提供され、そのすべてが対応する TypeScript のメソッドとバイト単位で同じリクエストを送ります。

  • OpenEmail::Client には、emails、threads、templates から provider_imports、dns_connections、account まで、すべての名前空間のリーダーがあります。listAll は list_all、getActive は get_active、tempMail は temp_mail になります。
  • リクエストボディはキーワード引数または 1 つの Hash として渡し、そのキーは API の camelCase の名前のままです。レスポンスは Symbol キーの Hash として返ります。
  • ページ分割されるすべてのリソースには、OpenEmail::Page を 1 つ返す list、すべてのアイテムを Array として返す list_all、各アイテムをブロックに yield するか、そこに達したときにだけ次のページを取得する Enumerator を返す iterate があります。PeoplePage、TempMessagesPage、AddressBookPage、AddressBook、BatchResult、TemplateSends は、一覧以上のものを含む答えを運びます。
  • API による拒否は、OpenEmail::ApiError またはエラーの種類に対応するそのサブクラスを送出します。これらは status、type、code、param、doc_url、request_id、retry_after_seconds、fields、body と、validation? や step_up_required? などの述語メソッドを持ちます。応答がまったくない場合は OpenEmail::NetworkError を送出し、期限を過ぎた場合は timeout? が true になります。呼び出し自体の誤りは、何かが送信される前に ArgumentError を送出します。
  • OpenEmail.create_client は OPENEMAIL_API_KEY、OPENEMAIL_ACCESS_TOKEN、OPENEMAIL_BASE_URL からクライアントを作り、OpenEmail.init、OpenEmail.client、OpenEmail.reset_client は、OpenEmail.emails をはじめとするすべての名前空間が使う 1 つの共有クライアントを管理します。OpenEmail.create_temp_mail は資格情報なしで使い捨て受信箱を開きます。
  • access_token: は OAuth アクセストークン、または call に応答してトークンを返すもの(各リクエストの前に呼び出されます)を受け取ります。すべてのメソッドは、1 回の呼び出しだけ別のキーで実行するための api_key: を受け取り、temp_mail のメソッドは inbox_token: を受け取ります。
  • OpenEmail.verify_webhook_signature は配信を一定時間で比較して検証し、5 分より古い配信を拒否し、パース済みのイベントを返します。署名は、大文字小文字を問わない Hash、Rack の env、または Rails の request.headers から読み取ります。
  • OpenEmail.to_base64、api_key?、access_token?、sealed?、resolve_language、language_by_code、rtl_language? は TypeScript SDK のヘルパーにあたり、そのパッケージのルートがエクスポートする値の集合はすべて、OpenEmail 上の凍結された Hash です。
  • 実行時の依存関係はありません。リクエストは Net::HTTP を通じて送られ、1 つのクライアントがスレッド間で共有し、fork の後に作り直すキープアライブ接続のプールを使います。timeout: は 1 回の試行全体の上限です。
  • 読み取り、送信、そして繰り返しても安全なすべての書き込みは、408、500、502、503、504 のときにバックオフ付きでリトライされ、429 のときは Retry-After が 1 分以下の場合にだけリトライされます。すべての送信は、リトライで再利用される冪等性キーを持ちます。
  • クライアントは、このマシン以外に対して暗号化されていない http: で資格情報を送ることを拒否し、0.0.0.0 上の base_url を拒否し、リクエストを分割してしまうヘッダーを拒否し、raw.request がベース URL のオリジンの外に出ることを決して許しません。