Ruby
Journal des versions
Toutes les versions de la gem, de la plus récente à la plus ancienne.
0.0.1
La première version. Elle couvre tout le SDK TypeScript tel qu'il était au moment de cette version, 0.0.8 plus les changements prévus après elle : 430 méthodes dans 41 espaces de noms, chacune sous le nom TypeScript en snake_case, et chacune envoie, octet pour octet, la requête qu'envoie sa jumelle TypeScript.
OpenEmail::Clienta un accesseur pour chaque espace de noms, deemails,threadsettemplatesjusqu'àprovider_imports,dns_connectionsetaccount.listAlldevientlist_all,getActivedevientget_active, ettempMaildevienttemp_mail.- Un corps de requête se passe en arguments nommés ou en un seul Hash, et ses clés gardent les noms en camelCase de l'API. Une réponse revient sous forme de Hash à clés Symbol.
- Chaque ressource paginée a
list, qui renvoie uneOpenEmail::Page,list_all, qui renvoie tous les éléments dans un Array, etiterate, qui passe chaque élément à un bloc ou renvoie un Enumerator qui ne récupère la page suivante qu'une fois arrivé à elle.PeoplePage,TempMessagesPage,AddressBookPage,AddressBook,BatchResultetTemplateSendsportent les réponses qui contiennent plus qu'une liste. - Un refus de l'API lève
OpenEmail::ApiErrorou sa sous-classe pour le type d'erreur, avecstatus,type,code,param,doc_url,request_id,retry_after_seconds,fieldsetbody, et des prédicats commevalidation?etstep_up_required?. L'absence totale de réponse lèveOpenEmail::NetworkError, avectimeout?quand le délai est dépassé. Une erreur dans l'appel lui-même lèveArgumentErroravant que rien ne soit envoyé. OpenEmail.create_clientconstruit un client à partir deOPENEMAIL_API_KEY,OPENEMAIL_ACCESS_TOKENetOPENEMAIL_BASE_URL, etOpenEmail.init,OpenEmail.clientetOpenEmail.reset_clientgèrent un client partagé par lequel passentOpenEmail.emailset tous les autres espaces de noms.OpenEmail.create_temp_mailouvre des boîtes jetables sans identifiant.access_token:prend un jeton d'accès OAuth, ou tout objet qui répond àcallet en renvoie un, appelé avant chaque requête. Chaque méthode prendapi_key:pour agir avec une autre clé le temps d'un appel, et les méthodestemp_mailprennentinbox_token:.OpenEmail.verify_webhook_signaturevérifie une livraison en temps constant, refuse celle qui date de plus de cinq minutes et renvoie l'événement analysé. Elle lit la signature dans un Hash quelle que soit la casse, dans un env Rack ou dans lesrequest.headersde Rails.OpenEmail.to_base64,api_key?,access_token?,sealed?,resolve_language,language_by_codeetrtl_language?sont les utilitaires du SDK TypeScript, et chaque ensemble de valeurs qu'exporte la racine de son paquet est un Hash gelé surOpenEmail.- Elle n'a aucune dépendance d'exécution. Les requêtes passent par Net::HTTP avec un pool de connexions maintenues ouvertes qu'un client partage entre ses threads et reconstruit après un fork, et
timeout:borne une tentative entière. - Les lectures, les envois et chaque écriture qu'on peut répéter sans risque sont réessayés sur 408, 500, 502, 503 et 504 avec un backoff, et sur un 429 seulement quand son
Retry-Afterest d'une minute ou moins. Chaque envoi porte une clé d'idempotence que ses réessais réutilisent. - Le client refuse d'envoyer un identifiant en
http:simple vers autre chose que cette machine, refuse unebase_urlsur0.0.0.0, refuse un en-tête qui scinderait une requête, et ne laisse jamaisraw.requestsortir de l'origine de l'URL de base.