Aller à la documentation
Java

Configuration

Chaque option du client, ce qu'il lit dans l'environnement et ce qu'il refuse.

Options

Client.java
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());
OptionCe qu'il fait
apiKeyLa 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é.
accessTokenUn 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.
baseUrlL'origine de l'API. Un hôte nu comme localhost:2222 reçoit son schéma.
httpClientVotre propre java.net.http.HttpClient, pour un proxy, un SSLContext personnalisé ou un exécuteur.
timeoutLa 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.
maxRetriesLe 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.
userAgentRemplace l'en-tête User-Agent, qui vaut openemail-java/ suivi de la version.
header, headersAjoute un en-tête à chaque requête.
disableUpdateNoticeDé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.

AnotherWorkspace.java
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_ ou oe_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 adresse 127.x.x.x ou à ::1.
  • Une URL de base sur 0.0.0.0, qui est une adresse sur laquelle un serveur écoute. Utilisez 127.0.0.1 avec 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é.

RawRequest.java
Object label = client.raw().request("POST", "/labels", Body.of("name", "Invoices")); System.out.println(label);