ドキュメント本文へスキップ
Java

設定

クライアントのすべてのオプション、環境から読むもの、拒否するもの。

オプション

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());
オプション機能
apiKeyoe_live_ または oe_test_ で始まるワークスペース API キー。呼び出しに渡すと、その呼び出しだけ別のキーで実行されます。
accessTokenユーザーが接続したアプリ用の OAuth アクセストークンです。キーかトークンのどちらか一方を渡してください。
accessToken(Supplier<String>)アクセストークンを返す関数です。リクエストのたびに事前に実行されるため、トークンを更新する場所になります。
baseUrlAPI のオリジンです。localhost:2222 のようなホストだけの値にはスキームが補われます。
httpClientプロキシ、独自の SSLContext、エグゼキューターを使うための、自前の java.net.http.HttpClient。
timeout1 回の試行にかけられる時間。既定は 30 秒で、ゼロにすると無効になり、アップロードは少なくとも 10 分待ちます。
maxRetries失敗したリクエストを再試行する回数です。既定値は 2 で、0 にすると 1 回だけ送信します。
userAgentopenemail-java/ とバージョンからなる User-Agent ヘッダーを置き換えます。
header, headersすべてのリクエストにヘッダーを追加します。
disableUpdateNotice新しいバージョンが出たことを知らせる、標準エラー出力の 1 行を止めます。OPENEMAIL_DISABLE_UPDATE_NOTICE=1 でも同じです。

省略したものはすべて環境から読み取られます。OPENEMAIL_API_KEY、次に OPENEMAIL_ACCESS_TOKEN、そして OPENEMAIL_BASE_URL です。client.mode() は、キーが live キーか test キーかを示します。

呼び出しごとのオプション

クエリパラメーターと呼び出しの設定は、引数のあとに渡す RequestOptions に入れます。apiKey、idempotencyKey、timeout、limit、cursor にはそれぞれメソッドがあり、set はそれ以外のオプションを API が使う名前で受け取ります。各メソッドはリファレンスの項目に載っているオプションを受け付け、当てはまらないオプションは何も送信される前に拒否されます。

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());

RequestOptions は不変です。どのメソッドも新しいインスタンスを返すため、共有している値が、そこに追加するコードによって変わることはありません。スレッドに割り込むと、待機中の呼び出しが止まります。

クライアントが拒否するもの

  • oe_live_ または oe_test_ で始まらないキー、およびアクセストークンと一緒に渡されたキー。
  • 平文の http: での資格情報の送信。ただしサーバーがこのマシンの localhost、127.x.x.x のアドレス、または ::1 にある場合は除きます。
  • 0.0.0.0 のベース URL。これはサーバーが待ち受けるアドレスです。同じポートで 127.0.0.1 を使ってください。
  • 空の id、またはドットだけでできた id。URL パーサーが取り除いてしまいます。
  • リダイレクトをたどること。既定の HTTP クライアントはリダイレクトを決してたどらないため、資格情報が別のホストに渡ることはありません。

クライアント、RequestOptions、例外を出力しても、資格情報は表示されません。キー、トークン、カスタムヘッダーの値は、toString() にも、クライアントが書き出すどのメッセージにも含まれません。

メソッドのないエンドポイント

client.raw().request は、クライアントの資格情報、ベース URL、タイムアウト、再試行ポリシーを使って任意のパスを呼び出します。パスは 1 つの / で始まる必要があり、ベース URL のオリジンを離れるパスは拒否されます。

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