Ruby
سجل التغييرات
كل إصدارات الـ gem، من الأحدث.
0.0.1
الإصدار الأول. يغطي TypeScript SDK كله كما كان حين أُعدّ هذا الإصدار، أي 0.0.8 مع التغييرات المنتظرة بعده: 430 تابعًا في 41 مساحة أسماء، كلٌّ منها باسمه في TypeScript بصيغة snake_case، وكل واحد منها يرسل بايتًا ببايت الطلب نفسه الذي يرسله توأمه في TypeScript.
- لـ
OpenEmail::Clientقارئ لكل مساحة أسماء، منemailsوthreadsوtemplatesإلىprovider_importsوdns_connectionsوaccount. فـlistAllهوlist_all، وgetActiveهوget_active، وtempMailهوtemp_mail. - يُمرَّر متن الطلب كوسائط مسمّاة أو كـ Hash واحد، وتحتفظ مفاتيحه بأسماء API بصيغة camelCase. وتعود الاستجابة في صورة Hash بمفاتيح من نوع Symbol.
- لكل مورد مرقّم الصفحات
listالذي يعيد صفحةOpenEmail::Pageواحدة، وlist_allالذي يعيد كل العناصر في Array، وiterateالذي يمرّر كل عنصر إلى كتلة أو يعيد Enumerator لا يجلب الصفحة التالية إلا حين يصل إليها. ويحمل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?حين ينقضي الموعد. والخطأ في الاستدعاء نفسه يرفعArgumentErrorقبل إرسال أي شيء. - يبني
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 بأي حالة أحرف، أو من بيئة Rack، أو منrequest.headersفي Rails. OpenEmail.to_base64وapi_key?وaccess_token?وsealed?وresolve_languageوlanguage_by_codeوrtl_language?هي الأدوات المساعدة الموجودة في TypeScript SDK، وكل مجموعة قيم يصدّرها جذر حزمته هي Hash مجمَّد علىOpenEmail.- ليس له تبعيات وقت التشغيل. وتمر الطلبات عبر Net::HTTP مع مجموعة من الاتصالات المُبقاة حيّة يتشاركها العميل الواحد بين خيوط التنفيذ ويعيد بناءها بعد عملية fork، ويحدّ
timeout:المحاولة كاملة. - تُعاد محاولة القراءات والإرسالات وكل كتابة آمنة للتكرار عند 408 و500 و502 و503 و504 مع تأخير متزايد بين المحاولات، وعند 429 فقط حين تكون قيمة
Retry-Afterفيه دقيقة أو أقل. ويحمل كل إرسال مفتاح لاتكرارية تعيد إعادات محاولته استخدامه. - يرفض العميل إرسال اعتماد عبر
http:العادي إلى أي شيء غير هذا الجهاز، ويرفضbase_urlعلى0.0.0.0، ويرفض ترويسة قد تقسم الطلب، ولا يسمح أبدًا لـraw.requestبمغادرة أصل عنوان URL الأساسي.