Ruby
चेंजलॉग
gem की हर रिलीज़, सबसे नई पहले।
0.0.1
पहली रिलीज़। यह पूरे TypeScript SDK को कवर करती है जैसा वह इस रिलीज़ के बनते समय था, 0.0.8 और उसके बाद कतार में लगे बदलाव: 41 namespaces में 430 मेथड, हर एक TypeScript नाम के snake_case रूप में, और उनमें से हर एक बाइट-दर-बाइट वही रिक्वेस्ट भेजता है जो उसका TypeScript जुड़वाँ भेजता है।
OpenEmail::Clientमें हर namespace के लिए एक reader है,emails,threadsऔरtemplatesसे लेकरprovider_imports,dns_connectionsऔरaccountतक।listAlllist_allहै,getActiveget_activeहै, औरtempMailtemp_mailहै।- रिक्वेस्ट बॉडी keyword arguments या एक Hash के रूप में जाती है, और उसकी कुंजियाँ API के camelCase नाम बनाए रखती हैं। जवाब Symbol कुंजियों वाले Hash के रूप में लौटता है।
- हर पेज वाले resource में
listहै, जो एकOpenEmail::Pageलौटाता है,list_all, जो हर आइटम एक Array के रूप में लौटाता है, औरiterate, जो हर आइटम को block में yield करता है या ऐसा Enumerator लौटाता है जो अगला पेज तभी लाता है जब वहाँ पहुँचे।PeoplePage,TempMessagesPage,AddressBookPage,AddressBook,BatchResultऔरTemplateSendsउन जवाबों को रखते हैं जिनमें सूची से ज़्यादा कुछ है। - API का अस्वीकार
OpenEmail::ApiErrorया error टाइप वाली उसकी subclass raise करता है,status,type,code,param,doc_url,request_id,retry_after_seconds,fieldsऔरbodyके साथ, औरvalidation?तथाstep_up_required?जैसे प्रेडिकेट के साथ। कोई जवाब न आने परOpenEmail::NetworkErrorraise होता है, समय-सीमा बीतने परtimeout?के साथ। कॉल में ही ग़लती हो तो कुछ भी भेजे जाने से पहलेArgumentErrorraise होता है। OpenEmail.create_clientOPENEMAIL_API_KEY,OPENEMAIL_ACCESS_TOKENऔरOPENEMAIL_BASE_URLसे एक क्लाइंट बनाता है, औरOpenEmail.init,OpenEmail.clientतथाOpenEmail.reset_clientएक साझा क्लाइंट संभालते हैं जिसके ज़रिएOpenEmail.emailsऔर हर दूसरा namespace पहुँचता है।OpenEmail.create_temp_mailबिना क्रेडेंशियल के डिस्पोज़ेबल इनबॉक्स खोलता है।access_token:एक OAuth एक्सेस टोकन लेता है, या कुछ भी जोcallका जवाब दे और टोकन लौटाए, जिसे हर रिक्वेस्ट से पहले कॉल किया जाता है। हर मेथड एक कॉल के लिए दूसरी कुंजी से काम करने कोapi_key:लेता है, औरtemp_mailके मेथडinbox_token:लेते हैं।OpenEmail.verify_webhook_signatureडिलीवरी को constant time में जाँचता है, पाँच मिनट से पुरानी डिलीवरी अस्वीकार करता है और पार्स किया गया इवेंट लौटाता है। यह सिग्नेचर किसी भी case वाले Hash, Rack env या Rails केrequest.headersसे पढ़ता है।OpenEmail.to_base64,api_key?,access_token?,sealed?,resolve_language,language_by_codeऔरrtl_language?TypeScript SDK के helpers हैं, और उसका package root जो भी मान-सेट export करता है वहOpenEmailपर एक frozen Hash है।- इसकी कोई रनटाइम निर्भरता नहीं है। रिक्वेस्ट keep-alive कनेक्शनों के पूल वाले Net::HTTP से जाती हैं, जिसे एक क्लाइंट थ्रेड्स के बीच साझा करता है और fork के बाद फिर से बनाता है, और
timeout:पूरे एक प्रयास को सीमित करता है। - reads, sends और दोहराने में सुरक्षित हर write पर 408, 500, 502, 503 और 504 पर backoff के साथ पुनः प्रयास होता है, और 429 पर सिर्फ़ तब जब उसका
Retry-Afterएक मिनट या उससे कम हो। हर send में एक idempotency कुंजी होती है जिसे उसके पुनः प्रयास दोबारा इस्तेमाल करते हैं। - क्लाइंट इस मशीन के सिवा किसी को भी सादे
http:पर क्रेडेंशियल भेजने से इनकार करता है,0.0.0.0परbase_urlको अस्वीकार करता है, रिक्वेस्ट को दो टुकड़ों में बाँटने वाले हेडर को अस्वीकार करता है, औरraw.requestको कभी बेस URL के origin से बाहर नहीं जाने देता।