Zur Dokumentation springen
Ruby

Changelog

Jedes Release des Gems, neuestes zuerst.

0.0.1

Das erste Release. Es deckt das gesamte TypeScript-SDK ab, wie es zum Zeitpunkt dieses Releases stand, 0.0.8 plus die danach eingereihten Änderungen: 430 Methoden in 41 Namespaces, jede unter dem TypeScript-Namen in snake_case, und jede davon sendet Byte für Byte die Anfrage, die ihr TypeScript-Gegenstück sendet.

  • OpenEmail::Client hat einen Reader für jeden Namespace, von emails, threads und templates bis provider_imports, dns_connections und account. Aus listAll wird list_all, aus getActive wird get_active und aus tempMail wird temp_mail.
  • Ein Request-Body wird als Keyword-Argumente oder als einzelner Hash übergeben, und seine Schlüssel behalten die camelCase-Namen der API. Eine Antwort kommt als Hash mit Symbol-Schlüsseln zurück.
  • Jede Ressource mit Seiten hat list, das eine OpenEmail::Page zurückgibt, list_all, das alle Einträge als Array zurückgibt, und iterate, das jeden Eintrag an einen Block übergibt oder einen Enumerator zurückgibt, der die nächste Seite erst holt, wenn er dort ankommt. PeoplePage, TempMessagesPage, AddressBookPage, AddressBook, BatchResult und TemplateSends tragen die Antworten, die mehr als eine Liste enthalten.
  • Eine Ablehnung durch die API löst OpenEmail::ApiError oder dessen Unterklasse für den Fehlertyp aus, mit status, type, code, param, doc_url, request_id, retry_after_seconds, fields und body sowie Prädikaten wie validation? und step_up_required?. Gar keine Antwort löst OpenEmail::NetworkError aus, mit timeout?, wenn die Frist abgelaufen ist. Ein Fehler im Aufruf selbst löst einen ArgumentError aus, bevor etwas gesendet wird.
  • OpenEmail.create_client erzeugt einen Client aus OPENEMAIL_API_KEY, OPENEMAIL_ACCESS_TOKEN und OPENEMAIL_BASE_URL, und OpenEmail.init, OpenEmail.client und OpenEmail.reset_client verwalten einen gemeinsamen Client, über den OpenEmail.emails und jeder andere Namespace zugreifen. OpenEmail.create_temp_mail öffnet Wegwerf-Postfächer ohne Zugangsdaten.
  • access_token: nimmt ein OAuth-Zugriffstoken oder alles, was auf call antwortet und eines zurückgibt, aufgerufen vor jeder Anfrage. Jede Methode nimmt api_key:, um für einen Aufruf mit einem anderen Schlüssel zu handeln, und die temp_mail-Methoden nehmen inbox_token:.
  • OpenEmail.verify_webhook_signature prüft eine Zustellung in konstanter Zeit, lehnt eine ab, die älter als fünf Minuten ist, und gibt das geparste Event zurück. Es liest die Signatur aus einem Hash in beliebiger Schreibweise, aus einem Rack-env oder aus request.headers von Rails.
  • OpenEmail.to_base64, api_key?, access_token?, sealed?, resolve_language, language_by_code und rtl_language? sind die Helfer des TypeScript-SDK, und jede Wertemenge, die dessen Paketwurzel exportiert, ist ein eingefrorener Hash auf OpenEmail.
  • Es hat keine Laufzeitabhängigkeiten. Anfragen laufen über Net::HTTP mit einem Pool von Keep-Alive-Verbindungen, den ein Client über Threads hinweg teilt und nach einem Fork neu aufbaut, und timeout: begrenzt einen ganzen Versuch.
  • Lesevorgänge, Versände und jeder Schreibvorgang, der gefahrlos wiederholt werden kann, werden bei 408, 500, 502, 503 und 504 mit Backoff wiederholt und bei einem 429 nur, wenn dessen Retry-After eine Minute oder weniger beträgt. Jeder Versand trägt einen Idempotency-Key, den seine Wiederholungen weiterverwenden.
  • Der Client weigert sich, Zugangsdaten über einfaches http: an etwas anderes als diesen Rechner zu senden, lehnt eine base_url auf 0.0.0.0 ab, lehnt einen Header ab, der eine Anfrage aufspalten würde, und lässt raw.request nie den Origin der Basis-URL verlassen.