Java
کمکیها و ثابتها
آنچه بسته جز متدهای کلاینت تعریف میکند.
متدهای ایستا
| متد | چیست |
|---|---|
| new OpenEmail(), OpenEmail.builder() | یک کلاینت. هر دو برای هر چه ننویسید محیط را میخوانند. |
| OpenEmail.createTempMail() | کلاینتی برای صندوقهای یکبارمصرف که هیچ کلید API حمل نمیکند. |
| OpenEmail.verifyWebhookSignature() | امضای یک تحویل را در زمان ثابت بررسی میکند، با پنجرهای پنجدقیقهای که یک Duration تغییرش میدهد، و رویداد را برمیگرداند. |
| OpenEmail.toBase64() | متن base64 برای بایتهای یک پیوست. |
| OpenEmail.isApiKey() | اینکه آیا یک مقدار شکل oe_live_ یا oe_test_ را دارد. بررسی شکل است، نه اثبات اینکه کلید هنوز کار میکند. |
| OpenEmail.isAccessToken() | اینکه آیا یک مقدار شکل یک توکن دسترسی OAuth را دارد: 1 تا 512 نویسه، که با oe_ آغاز نمیشود. |
| OpenEmail.isSealed() | اینکه آیا بدنهٔ یک پیام متن رمز است. برای دو قالب امضاشده که بدنهشان آشکار رسیده false است. |
| OpenEmail.resolveLanguage(), OpenEmail.languageByCode(), OpenEmail.isRtlLanguage() | جستوجوهایی که یک انتخابگر زبان لازم دارد، روی جدول همراه Languages.ALL. |
| client.raw().request() | مسیری را که هنوز هیچ متدی آن را نمیپوشاند، با اعتبارنامه و سیاست تلاش دوبارهٔ کلاینت فراخوانی میکند. |
ثابتها
هر مجموعه مقداری که TypeScript SDK صادر میکند یک کلاس final در uk.openemail.constants است، با یک ثابت برای هر عضو و با همان نامها، پس 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 | پنج پاکتی که فرایند دریافت میتواند نام ببرد. سهتای آنها مهرومومشدهاند. |
| CredentialKinds, StepUpMethods, StepUpErrorCodes | اینکه me().get و me().ping کدام اعتبارنامه را توصیف میکنند، یک کد تأیید چگونه بررسی میشود، و کدهایی که یک تأیید میتواند با آنها شکست بخورد. |
| ThreadSorts، PeopleSorts، FileSorts و دیگر *Sortsها | ترتیبهایی که یک فهرست میتواند بر اساس آنها مرتب شود. |
| FormStatuses، BroadcastStatuses، SuppressionReasons و دیگر مجموعهها | مقدارهایی که یک فیلد از یک منبع میتواند بگیرد. هر مجموعه به نام چیزی که در خود دارد نامگذاری شده است. |
| Languages.ALL | همهٔ زبانهایی که یک ارسال یا پیشنمایش ترجمهشده میپذیرد، همراه با کد، نامها و جهت نوشتارشان. |
شیءها
پاسخ همان JSON رمزگشاییشده به شکل Map<String, Object> است. بسته فقط جایی نوعی از خودش میسازد که به پاسخ شکل میدهد. هر کدام یک record تغییرناپذیر در uk.openemail.result است، و یک حلقهٔ 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 را میپذیرد، و گزینههای یک فراخوانی. |
هر استثنایی که بسته پرتاب میکند یک OpenEmailException است: ApiException و زیرکلاسهایش، NetworkException و WebhookSignatureException. اشتباه در خودِ فراخوانی پیش از ارسال هر چیزی IllegalArgumentException پرتاب میکند.
کارهایی که عمداً انجام نمیدهد
- هیچ بدنهٔ درخواستی را اعتبارسنجی نمیکند. اسکیمای سرور تنها نسخهٔ قواعد است، و نسخهٔ دومی در اینجا سرانجام نشانیای را که سرور تازهتر میپذیرد رد میکرد، در نسخهای که کسی دو سال پیش سنجاقش کرده.
- فقط به یک شیوه شکل پاسخ را عوض میکند: فهرست
dataیک مجموعه از پوشش خود بیرون آورده میشود و در یکی از نوعهای بالا قرار میگیرد. هر پاسخ دیگری همانطور که API فرستاده بازمیگردد، با کلیدهای camelCase خودِ API. - متد ناهمگام ندارد. یک فراخوانی ریسمان خود را تا رسیدن پاسخ مسدود میکند، که روی یک ریسمان مجازی هزینهٔ کمی دارد.