Konfiguration
Jede Option des Clients, was er aus der Umgebung liest und was er ablehnt.
Optionen
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 | Was es tut |
|---|---|
| apiKey | Der Workspace-API-Schlüssel, der mit oe_live_ oder oe_test_ beginnt. Bei einem Aufruf angegeben, gilt ein anderer Schlüssel nur für diesen Aufruf. |
| accessToken | Ein OAuth-Zugriffstoken für eine App, die eine Person verbunden hat. Übergeben Sie einen Schlüssel oder ein Token, nicht beides. |
| accessToken(Supplier<String>) | Eine Funktion, die das Zugriffstoken zurückgibt. Sie läuft vor jeder Anfrage und ist damit der Ort, ein Token zu erneuern. |
| baseUrl | Der Ursprung der API. Ein bloßer Host wie localhost:2222 bekommt sein Schema ergänzt. |
| httpClient | Ihr eigener java.net.http.HttpClient, für einen Proxy, einen eigenen SSLContext oder einen Executor. |
| timeout | Wie lange ein Versuch dauern darf. Der Standard sind 30 Sekunden, null schaltet es ab, und Uploads warten mindestens zehn Minuten. |
| maxRetries | Wie oft eine fehlgeschlagene Anfrage erneut versucht wird. Der Standard ist 2, und 0 sendet einmal. |
| userAgent | Ersetzt den Header User-Agent, der aus openemail-java/ und der Version besteht. |
| header, headers | Fügt jeder Anfrage einen Header hinzu. |
| disableUpdateNotice | Schaltet die eine Zeile auf der Standardfehlerausgabe ab, die meldet, dass eine neuere Version erschienen ist. OPENEMAIL_DISABLE_UPDATE_NOTICE=1 bewirkt dasselbe. |
Alles, was Sie weglassen, wird aus der Umgebung gelesen: OPENEMAIL_API_KEY, dann OPENEMAIL_ACCESS_TOKEN, und OPENEMAIL_BASE_URL. client.mode() sagt, ob der Schlüssel ein live- oder ein test-Schlüssel ist.
Optionen bei einem Aufruf
Abfrageparameter und Einstellungen eines Aufrufs stehen in einem RequestOptions, das nach den Argumenten übergeben wird. Es hat eine Methode für apiKey, idempotencyKey, timeout, limit und cursor, und set nimmt jede andere Option unter dem Namen an, den die API verwendet. Jede Methode nimmt die Optionen an, die ihr Referenzeintrag aufführt, und eine Option, die nicht passt, wird abgelehnt, bevor etwas gesendet wird.
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());Ein RequestOptions ist unveränderlich: Jede Methode gibt ein neues zurück, sodass ein geteilter Wert nie von dem Code geändert werden kann, der etwas hinzufügt. Das Unterbrechen des Threads beendet einen wartenden Aufruf.
Was der Client ablehnt
- Einen Schlüssel, der nicht mit
oe_live_oderoe_test_beginnt, und einen Schlüssel zusammen mit einem Zugriffstoken. - Das Senden von Zugangsdaten über einfaches
http:, außer der Server läuft auf diesem Rechner unterlocalhost, einer127.x.x.x-Adresse oder::1. - Eine Basis-URL auf
0.0.0.0, einer Adresse, auf der ein Server lauscht. Verwenden Sie127.0.0.1mit demselben Port. - Eine leere ID oder eine, die nur aus Punkten besteht und die ein URL-Parser entfernen würde.
- Einer Weiterleitung zu folgen. Der Standard-HTTP-Client folgt nie einer, sodass Zugangsdaten nie zu einem anderen Host gelangen.
Die Ausgabe eines Clients, eines RequestOptions oder einer Exception zeigt nie Zugangsdaten. Der Schlüssel, das Token und die Werte eigener Header bleiben aus toString() und aus jeder Meldung heraus, die der Client schreibt.
Ein Endpunkt ohne Methode
client.raw().request ruft jeden Pfad mit den Zugangsdaten, der Basis-URL, dem Timeout und der Wiederholungsrichtlinie des Clients auf. Der Pfad muss mit einem einzelnen / beginnen, und ein Pfad, der den Ursprung der Basis-URL verlässt, wird abgelehnt.
Object label = client.raw().request("POST", "/labels", Body.of("name", "Invoices")); System.out.println(label);