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());| オプション | 機能 |
|---|---|
| apiKey | oe_live_ または oe_test_ で始まるワークスペース API キー。呼び出しに渡すと、その呼び出しだけ別のキーで実行されます。 |
| accessToken | ユーザーが接続したアプリ用の OAuth アクセストークンです。キーかトークンのどちらか一方を渡してください。 |
| accessToken(Supplier<String>) | アクセストークンを返す関数です。リクエストのたびに事前に実行されるため、トークンを更新する場所になります。 |
| baseUrl | API のオリジンです。localhost:2222 のようなホストだけの値にはスキームが補われます。 |
| httpClient | プロキシ、独自の SSLContext、エグゼキューターを使うための、自前の java.net.http.HttpClient。 |
| timeout | 1 回の試行にかけられる時間。既定は 30 秒で、ゼロにすると無効になり、アップロードは少なくとも 10 分待ちます。 |
| maxRetries | 失敗したリクエストを再試行する回数です。既定値は 2 で、0 にすると 1 回だけ送信します。 |
| userAgent | openemail-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 が使う名前で受け取ります。各メソッドはリファレンスの項目に載っているオプションを受け付け、当てはまらないオプションは何も送信される前に拒否されます。
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 のオリジンを離れるパスは拒否されます。
Object label = client.raw().request("POST", "/labels", Body.of("name", "Invoices")); System.out.println(label);