Configuration
Chaque option du client, ce qu'il lit dans l'environnement et ce qu'il refuse.
Options
OpenEmail client = OpenEmail.builder() .apiKey(System.getenv("OPENEMAIL_API_KEY")) .baseUrl("https://api.openemail.uk") .timeout(Duration.ofSeconds(30)) .maxRetries(2) .header("X-Team", "billing") .build(); System.out.println(client.mode());| Option | Ce qu'il fait |
|---|---|
| apiKey | La clé d'API de l'espace de travail, qui commence par oe_live_ ou oe_test_. Passée sur un appel, elle fait agir cet appel seulement avec une autre clé. |
| accessToken | Un jeton d'accès OAuth, pour une application qu'une personne a connectée. Passez une clé ou un jeton, pas les deux. |
| accessToken(Supplier<String>) | Une fonction qui renvoie le jeton d'accès. Elle s'exécute avant chaque requête : c'est donc l'endroit où renouveler un jeton. |
| baseUrl | L'origine de l'API. Un hôte nu comme localhost:2222 reçoit son schéma. |
| httpClient | Votre propre java.net.http.HttpClient, pour un proxy, un SSLContext personnalisé ou un exécuteur. |
| timeout | La durée maximale d'une tentative. La valeur par défaut est de 30 secondes, zéro la désactive, et les téléversements attendent au moins dix minutes. |
| maxRetries | Le nombre de fois où une requête en échec est retentée. La valeur par défaut est 2, et 0 n'envoie qu'une fois. |
| userAgent | Remplace l'en-tête User-Agent, qui vaut openemail-java/ suivi de la version. |
| header, headers | Ajoute un en-tête à chaque requête. |
| disableUpdateNotice | Désactive la ligne unique, sur la sortie d'erreur standard, qui signale qu'une version plus récente est sortie. OPENEMAIL_DISABLE_UPDATE_NOTICE=1 fait la même chose. |
Tout ce que vous omettez est lu dans l'environnement : OPENEMAIL_API_KEY, puis OPENEMAIL_ACCESS_TOKEN, et OPENEMAIL_BASE_URL. client.mode() indique si la clé est une clé live ou test.
Options d'un appel
Les paramètres de requête et les réglages d'un appel vont dans un RequestOptions, passé après les arguments. Il a une méthode pour apiKey, idempotencyKey, timeout, limit et cursor, et set accepte toute autre option sous le nom que l'API utilise. Chaque méthode accepte les options que son entrée de référence énumère, et une option qui ne s'applique pas est refusée avant tout envoi.
RequestOptions options = RequestOptions.of("folder", "inbox") .apiKey(System.getenv("OPENEMAIL_API_KEY")) .timeout(Duration.ofSeconds(5)) .limit(50); Page threads = client.threads().list(options); System.out.println(threads.size());Un RequestOptions est immuable : chaque méthode en renvoie un nouveau, si bien qu'une valeur partagée ne peut jamais être modifiée par le code qui y ajoute quelque chose. Interrompre le thread arrête un appel en attente.
Ce que le client refuse
- Une clé qui ne commence pas par
oe_live_ouoe_test_, et une clé accompagnée d'un jeton d'accès. - L'envoi d'un identifiant en
http:simple, sauf si le serveur est sur cette machine, àlocalhost, à une adresse127.x.x.xou à::1. - Une URL de base sur
0.0.0.0, qui est une adresse sur laquelle un serveur écoute. Utilisez127.0.0.1avec le même port. - Un identifiant vide, ou fait uniquement de points, qu'un analyseur d'URL supprimerait.
- Suivre une redirection. Le client HTTP par défaut n'en suit jamais : un identifiant ne voyage donc jamais vers un autre hôte.
Afficher un client, un RequestOptions ou une exception ne montre jamais un identifiant. La clé, le jeton et les valeurs des en-têtes personnalisés restent hors de toString() et de tout message que le client écrit.
Un point de terminaison sans méthode
client.raw().request appelle n'importe quel chemin avec l'identifiant, l'URL de base, le délai et la politique de nouvelles tentatives du client. Le chemin doit commencer par un seul /, et un chemin qui quitte l'origine de l'URL de base est refusé.
Object label = client.raw().request("POST", "/labels", Body.of("name", "Invoices")); System.out.println(label);