Aller à la documentation
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::Client a un accesseur pour chaque espace de noms, de emails, threads et templates jusqu'à provider_imports, dns_connections et account. listAll devient list_all, getActive devient get_active, et tempMail devient temp_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 une OpenEmail::Page, list_all, qui renvoie tous les éléments dans un Array, et iterate, 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, BatchResult et TemplateSends portent les réponses qui contiennent plus qu'une liste.
  • Un refus de l'API lève OpenEmail::ApiError ou sa sous-classe pour le type d'erreur, avec status, type, code, param, doc_url, request_id, retry_after_seconds, fields et body, et des prédicats comme validation? et step_up_required?. L'absence totale de réponse lève OpenEmail::NetworkError, avec timeout? quand le délai est dépassé. Une erreur dans l'appel lui-même lève ArgumentError avant que rien ne soit envoyé.
  • OpenEmail.create_client construit un client à partir de OPENEMAIL_API_KEY, OPENEMAIL_ACCESS_TOKEN et OPENEMAIL_BASE_URL, et OpenEmail.init, OpenEmail.client et OpenEmail.reset_client gèrent un client partagé par lequel passent OpenEmail.emails et tous les autres espaces de noms. OpenEmail.create_temp_mail ouvre des boîtes jetables sans identifiant.
  • access_token: prend un jeton d'accès OAuth, ou tout objet qui répond à call et en renvoie un, appelé avant chaque requête. Chaque méthode prend api_key: pour agir avec une autre clé le temps d'un appel, et les méthodes temp_mail prennent inbox_token:.
  • OpenEmail.verify_webhook_signature vé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 les request.headers de Rails.
  • OpenEmail.to_base64, api_key?, access_token?, sealed?, resolve_language, language_by_code et rtl_language? sont les utilitaires du SDK TypeScript, et chaque ensemble de valeurs qu'exporte la racine de son paquet est un Hash gelé sur OpenEmail.
  • 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-After est 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 une base_url sur 0.0.0.0, refuse un en-tête qui scinderait une requête, et ne laisse jamais raw.request sortir de l'origine de l'URL de base.