پرش به مستندات
Ruby

فهرست تغییرات

همهٔ انتشارهای gem، تازه‌ترین اول.

0.0.1

نخستین انتشار. کل SDK TypeScript را آن‌گونه که هنگام آماده شدن این انتشار بود پوشش می‌دهد، 0.0.8 به‌علاوهٔ تغییراتی که پس از آن در صف بودند: 430 متد در 41 فضای نام، هرکدام با نام TypeScript به شکل snake_case، و هر یک از آن‌ها بایت به بایت همان درخواستی را می‌فرستد که همتای TypeScript آن.

  • OpenEmail::Client برای هر فضای نام یک reader دارد، از emails، threads و templates تا provider_imports، dns_connections و account. listAll می‌شود list_all، getActive می‌شود get_active، و tempMail می‌شود temp_mail.
  • بدنهٔ درخواست به‌صورت آرگومان‌های کلیدواژه‌ای یا یک Hash داده می‌شود، و کلیدهایش نام‌های camelCase در API را نگه می‌دارند. پاسخ به‌صورت یک Hash با کلیدهای Symbol برمی‌گردد.
  • هر منبع صفحه‌بندی‌شده list را دارد که یک OpenEmail::Page برمی‌گرداند، list_all را که همهٔ موردها را به‌صورت یک Array برمی‌گرداند، و iterate را که هر مورد را به یک بلاک yield می‌کند یا یک Enumerator برمی‌گرداند که صفحهٔ بعد را فقط وقتی به آن برسد می‌گیرد. PeoplePage، TempMessagesPage، AddressBookPage، AddressBook، BatchResult و TemplateSends پاسخ‌هایی را حمل می‌کنند که چیزی بیش از یک فهرست دارند.
  • رد شدن از سوی API، OpenEmail::ApiError یا زیرکلاس متناظر با نوع خطا را raise می‌کند، با status، type، code، param، doc_url، request_id، retry_after_seconds، fields و body، و متدهای پرسشی مانند validation? و step_up_required?. نبودِ هیچ پاسخی OpenEmail::NetworkError را raise می‌کند، با timeout? وقتی مهلت گذشته باشد. اشتباه در خودِ فراخوانی پیش از فرستادن هر چیزی ArgumentError را raise می‌کند.
  • OpenEmail.create_client یک کلاینت از OPENEMAIL_API_KEY، OPENEMAIL_ACCESS_TOKEN و OPENEMAIL_BASE_URL می‌سازد، و OpenEmail.init، OpenEmail.client و OpenEmail.reset_client یک کلاینت مشترک را مدیریت می‌کنند که OpenEmail.emails و هر فضای نام دیگری از راه آن دسترسی می‌یابند. OpenEmail.create_temp_mail صندوق‌های یک‌بارمصرف را بدون اعتبارنامه باز می‌کند.
  • access_token: یک توکن دسترسی OAuth می‌گیرد، یا هر چیزی که به call پاسخ دهد و یکی برگرداند، که پیش از هر درخواست فراخوانی می‌شود. هر متد api_key: را می‌گیرد تا برای یک فراخوانی با کلید دیگری عمل کند، و متدهای temp_mail، inbox_token: را می‌گیرند.
  • OpenEmail.verify_webhook_signature یک تحویل را در زمان ثابت بررسی می‌کند، تحویلی را که بیش از پنج دقیقه قدمت داشته باشد رد می‌کند و رویداد تجزیه‌شده را برمی‌گرداند. امضا را از یک Hash با هر بزرگی و کوچکی حروف، یک env در Rack یا request.headers در Rails می‌خواند.
  • OpenEmail.to_base64، api_key?، access_token?، sealed?، resolve_language، language_by_code و rtl_language? همان کمکی‌های SDK TypeScript هستند، و هر مجموعه‌مقداری که ریشهٔ بستهٔ آن صادر می‌کند یک Hash منجمد روی OpenEmail است.
  • هیچ وابستگی زمان اجرا ندارد. درخواست‌ها از راه Net::HTTP با مخزنی از اتصال‌های keep-alive می‌روند که یک کلاینت آن را میان تردها به اشتراک می‌گذارد و پس از fork از نو می‌سازد، و timeout: کل یک تلاش را محدود می‌کند.
  • خواندن‌ها، ارسال‌ها و هر نوشتنی که تکرارش بی‌خطر است، روی 408، 500، 502، 503 و 504 با backoff دوباره تلاش می‌شوند، و روی 429 فقط وقتی Retry-After آن یک دقیقه یا کمتر باشد. هر ارسال یک کلید idempotency دارد که تلاش‌های دوباره‌اش از آن استفاده می‌کنند.
  • کلاینت از فرستادن اعتبارنامه با http: ساده به هر جایی جز همین دستگاه خودداری می‌کند، base_url روی 0.0.0.0 را رد می‌کند، سرآیندی را که درخواست را دو تکه کند رد می‌کند، و هرگز نمی‌گذارد raw.request از origin مربوط به URL پایه بیرون برود.