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 پایه بیرون برود.