Java
ヘルパーと定数
クライアントのメソッド以外にパッケージが定義しているもの。
静的メソッド
| メソッド | 内容 |
|---|---|
| new OpenEmail(), OpenEmail.builder() | クライアント。どちらも、省略したものを環境から読み取ります。 |
| OpenEmail.createTempMail() | API キーを持たない使い捨て受信箱用のクライアント。 |
| OpenEmail.verifyWebhookSignature() | 配信の署名を定数時間で検証し、イベントを返します。5 分の許容時間は Duration で変更できます。 |
| OpenEmail.toBase64() | 添付ファイルのバイト列を表す base64 テキスト。 |
| OpenEmail.isApiKey() | 値が oe_live_ または oe_test_ の形をしているかどうか。形式の検査であり、そのキーがまだ有効であることの証明ではありません。 |
| OpenEmail.isAccessToken() | 値が OAuth アクセストークンの形をしているかどうか。1〜512 文字で、oe_ で始まらないものです。 |
| OpenEmail.isSealed() | メッセージのボディが暗号文かどうか。2 つの署名形式では、ボディが平文で届いているため false です。 |
| OpenEmail.resolveLanguage(), OpenEmail.languageByCode(), OpenEmail.isRtlLanguage() | 言語ピッカーに必要な検索。同梱の Languages.ALL テーブルを使います。 |
| client.raw().request() | まだメソッドが用意されていないパスを、クライアントの資格情報と再試行ポリシーで呼び出します。 |
定数
TypeScript SDK がエクスポートする値のセットはすべて、uk.openemail.constants の final クラスで、メンバーごとに同じ名前の定数が 1 つあります。そのため WebhookEvents.EMAIL_DELIVERED は email.delivered です。values() はセット全体を返すので、外部から来た値の確認にも使えます。
List<String> events = WebhookEvents.values();List<String> scopes = List.of(ApiScopes.EMAILS_SEND, ApiScopes.THREADS_READ);boolean known = events.contains("email.delivered"); System.out.println(events.size() + " " + String.join(",", scopes) + " " + PageLimits.MAX_LIMIT + " " + known);| 定数 | 内容 |
|---|---|
| OpenEmail.VERSION | パッケージのバージョン。 |
| ApiScopes | キー作成画面のためのスコープ語彙。 |
| WebhookEvents, WebhookSignatureHeaders | エンドポイントが購読できるイベントと、配信に付くヘッダーの名前。 |
| ErrorTypes | ApiException.type() が返すエラーの語彙。 |
| PageLimits | ほとんどのページ付きリストでの limit の最大値と既定値、MAX_LIMIT と DEFAULT_LIMIT: 100 と 25。一部のリストはそれ以上を受け付け、各メソッドのリファレンスに記載されています。 |
| RuleFields, RuleOperators, RuleActions | ルールの条件とアクションを組み立てるための語彙。 |
| MessageEncryptionFormats | 受信処理が識別できる 5 つのエンベロープ。そのうち 3 つは封緘されています。 |
| CredentialKinds, StepUpMethods, StepUpErrorCodes | me().get と me().ping が示す資格情報の種類、確認コードの検証方法、検証が失敗するときのコード。 |
| ThreadSorts、PeopleSorts、FileSorts とその他の *Sorts | 一覧を並べ替えられる順序。 |
| FormStatuses、BroadcastStatuses、SuppressionReasons とその他の集合 | リソースのフィールドが取り得る値。各集合は、保持するものにちなんで名付けられています。 |
| Languages.ALL | 翻訳付きの送信やプレビューが受け付けるすべての言語で、コード、名前、書字方向を持ちます。 |
オブジェクト
レスポンスはデコードされた JSON の Map<String, Object> です。パッケージが独自の型を作るのは、応答を整形する場合だけです。どれも uk.openemail.result の不変の record で、for ループで行をたどれます。
| クラス | 持っているもの |
|---|---|
| Page | items、hasMore、nextCursor。ページ分割されるすべての list から返ります。 |
| PeoplePage | 同じ内容に seen を加えたもの。contacts().listPeople が返します。 |
| TempMessagesPage | 同じ内容に expiresAt を加えたもの。tempMail().listMessages が返します。 |
| AddressBookPage, AddressBook | unrestricted、addresses、domains。addresses().list(hasMore と nextCursor 付き)と addresses().listAll が返します。 |
| BatchResult | items、sent、failed。emails().sendBatch が返します。 |
| TemplateSends | items、total、page、pageSize。templates().listSends が返します。 |
| PagedIterable | すべてのページの走査。各 iterate が返し、for ループ、stream()、toList() で使えます。 |
| Body, RequestOptions | 呼び出しが受け取るもの。順序を保ち null 値も受け付けるリクエストボディと、1 回の呼び出しのオプションです。 |
パッケージがスローする例外はすべて OpenEmailException です。ApiException とそのサブクラス、NetworkException、WebhookSignatureException があります。呼び出しそのものの誤りは、何も送信される前に IllegalArgumentException をスローします。
あえて行わないこと
- リクエストボディの検証は行いません。ルールの唯一の写しはサーバーのスキーマであり、ここに 2 つ目の写しを置けば、いずれ 2 年前に誰かが固定したバージョンが、新しいサーバーなら受け入れるアドレスを拒否することになります。
- レスポンスの形を変えるのは 1 つの場合だけです。コレクションの
dataリストをエンベロープから取り出し、上記の型のいずれかに入れます。それ以外のレスポンスは、API の camelCase のキーのまま、API が送ったとおりに返ります。 - 非同期メソッドはありません。呼び出しは応答が届くまでスレッドをブロックしますが、仮想スレッドならその負担はわずかです。