Utilitaires et constantes
Ce que le package définit d'autre en plus des méthodes du client.
Méthodes statiques
| Méthode | Ce que c'est |
|---|---|
| new OpenEmail(), OpenEmail.builder() | Un client. Les deux lisent l'environnement pour tout ce que vous omettez. |
| OpenEmail.createTempMail() | Un client de boîte jetable qui ne porte aucune clé API. |
| OpenEmail.verifyWebhookSignature() | Vérifie la signature d'une livraison en temps constant, avec une fenêtre de cinq minutes qu'une Duration change, et renvoie l'événement. |
| OpenEmail.toBase64() | Le texte base64 des octets d'une pièce jointe. |
| OpenEmail.isApiKey() | Indique si une valeur a la forme oe_live_ ou oe_test_. Une vérification de forme, pas une preuve que la clé fonctionne encore. |
| OpenEmail.isAccessToken() | Indique si une valeur a la forme d'un jeton d'accès OAuth : de 1 à 512 caractères, sans commencer par oe_. |
| OpenEmail.isSealed() | Indique si le corps d'un message est du chiffré. Vaut false pour les deux formats signés, dont les corps sont arrivés en clair. |
| OpenEmail.resolveLanguage(), OpenEmail.languageByCode(), OpenEmail.isRtlLanguage() | Les recherches dont un sélecteur de langue a besoin, sur la table Languages.ALL fournie. |
| client.raw().request() | Appelle un chemin qu'aucune méthode ne couvre encore, avec l'identifiant et la politique de nouvelles tentatives du client. |
Constantes
Chaque ensemble de valeurs que le SDK TypeScript exporte est une classe finale de uk.openemail.constants, avec une constante par membre sous les mêmes noms : WebhookEvents.EMAIL_DELIVERED vaut donc email.delivered. values() renvoie l'ensemble entier, et c'est aussi le moyen de vérifier une valeur venue de l'extérieur.
List<String> events = WebhookEvents.values();List<String> scopes = List.of(ApiScopes.EMAILS_SEND, ApiScopes.THREADS_READ);boolean known = events.contains("email.delivered"); System.out.println(events.size() + " " + String.join(",", scopes) + " " + PageLimits.MAX_LIMIT + " " + known);| Constante | Ce qu'il contient |
|---|---|
| OpenEmail.VERSION | La version du paquet. |
| ApiScopes | Le vocabulaire des portées, pour un écran de création de clé. |
| WebhookEvents, WebhookSignatureHeaders | Les événements auxquels un endpoint peut s'abonner, et les noms des en-têtes que porte une livraison. |
| ErrorTypes | Le vocabulaire d'erreurs que ApiException.type() renvoie. |
| PageLimits | La plus grande valeur et la valeur par défaut de limit sur la plupart des listes paginées, MAX_LIMIT et DEFAULT_LIMIT : 100 et 25. Quelques listes en acceptent davantage, et la référence de chaque méthode le précise. |
| RuleFields, RuleOperators, RuleActions | Le vocabulaire à partir duquel se construisent les conditions et les actions d'une règle. |
| MessageEncryptionFormats | Les cinq enveloppes que l'ingestion peut nommer. Trois d'entre elles sont scellées. |
| CredentialKinds, StepUpMethods, StepUpErrorCodes | Quel identifiant me().get et me().ping décrivent, comment un code de vérification est contrôlé, et les codes avec lesquels une vérification peut échouer. |
| ThreadSorts, PeopleSorts, FileSorts et les autres *Sorts | Les ordres dans lesquels une liste peut être triée. |
| FormStatuses, BroadcastStatuses, SuppressionReasons et les autres ensembles | Les valeurs que peut prendre un champ d'une ressource. Chaque ensemble est nommé d'après ce qu'il contient. |
| Languages.ALL | Chaque langue qu'accepte un envoi traduit ou un aperçu, avec son code, ses noms et son sens d'écriture. |
Objets
Une réponse est le JSON décodé sous forme de Map<String, Object>. Le paquet ne construit un type à lui que là où il met la réponse en forme. Chacun est un record immuable de uk.openemail.result, et une boucle for parcourt ses lignes.
| Classe | Ce qu'il contient |
|---|---|
| Page | items, hasMore et nextCursor, renvoyés par chaque list paginé. |
| PeoplePage | La même chose plus seen, depuis contacts().listPeople. |
| TempMessagesPage | La même chose plus expiresAt, depuis tempMail().listMessages. |
| AddressBookPage, AddressBook | unrestricted, addresses et domains, depuis addresses().list (avec hasMore et nextCursor) et addresses().listAll. |
| BatchResult | items, sent et failed, depuis emails().sendBatch. |
| TemplateSends | items, total, page et pageSize, depuis templates().listSends. |
| PagedIterable | Un parcours de toutes les pages, depuis chaque iterate : une boucle for, stream() ou toList(). |
| Body, RequestOptions | Ce qu'un appel reçoit : un corps de requête qui garde son ordre et accepte les valeurs null, et les options d'un appel. |
Toute exception levée par le paquet est une OpenEmailException : ApiException et ses sous-classes, NetworkException et WebhookSignatureException. Une erreur dans l'appel lui-même lève une IllegalArgumentException avant tout envoi.
Ce qu'il ne fait délibérément pas
- Elle ne valide aucun corps de requête. Le schéma du serveur est l'unique copie des règles, et une seconde copie ici finirait par refuser une adresse qu'un serveur plus récent accepte, dans une version que quelqu'un a épinglée deux ans plus tôt.
- Il ne remodèle une réponse que d'une seule façon : la liste
datad'une collection est extraite de son enveloppe vers l'un des types ci-dessus. Toute autre réponse revient telle que l'API l'a envoyée, avec les clés camelCase de l'API. - Il n'a pas de méthodes asynchrones. Un appel bloque son thread jusqu'à l'arrivée de la réponse, ce qui coûte peu sur un thread virtuel.