Aller à la documentation
Java

Utilitaires et constantes

Ce que le package définit d'autre en plus des méthodes du client.

Méthodes statiques

MéthodeCe 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.

Constants.java
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);
ConstanteCe qu'il contient
OpenEmail.VERSIONLa version du paquet.
ApiScopesLe vocabulaire des portées, pour un écran de création de clé.
WebhookEvents, WebhookSignatureHeadersLes événements auxquels un endpoint peut s'abonner, et les noms des en-têtes que porte une livraison.
ErrorTypesLe vocabulaire d'erreurs que ApiException.type() renvoie.
PageLimitsLa 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, RuleActionsLe vocabulaire à partir duquel se construisent les conditions et les actions d'une règle.
MessageEncryptionFormatsLes cinq enveloppes que l'ingestion peut nommer. Trois d'entre elles sont scellées.
CredentialKinds, StepUpMethods, StepUpErrorCodesQuel 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 *SortsLes ordres dans lesquels une liste peut être triée.
FormStatuses, BroadcastStatuses, SuppressionReasons et les autres ensemblesLes valeurs que peut prendre un champ d'une ressource. Chaque ensemble est nommé d'après ce qu'il contient.
Languages.ALLChaque 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.

ClasseCe qu'il contient
Pageitems, hasMore et nextCursor, renvoyés par chaque list paginé.
PeoplePageLa même chose plus seen, depuis contacts().listPeople.
TempMessagesPageLa même chose plus expiresAt, depuis tempMail().listMessages.
AddressBookPage, AddressBookunrestricted, addresses et domains, depuis addresses().list (avec hasMore et nextCursor) et addresses().listAll.
BatchResultitems, sent et failed, depuis emails().sendBatch.
TemplateSendsitems, total, page et pageSize, depuis templates().listSends.
PagedIterableUn parcours de toutes les pages, depuis chaque iterate : une boucle for, stream() ou toList().
Body, RequestOptionsCe 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 data d'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.