پیکربندی
هر گزینهٔ کلاینت، آنچه از محیط میخواند و آنچه رد میکند.
گزینهها
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 | کلید API فضای کاری که با oe_live_ یا oe_test_ آغاز میشود. در یک فراخوانی، فقط برای همان فراخوانی با کلید دیگری عمل میکند. |
| accessToken | یک توکن دسترسی OAuth، برای برنامهای که یک شخص متصل کرده است. یک کلید یا یک توکن بدهید، نه هر دو. |
| accessToken(Supplier<String>) | تابعی که توکن دسترسی را برمیگرداند. پیش از هر درخواست اجرا میشود، پس جای تمدید توکن همینجاست. |
| baseUrl | مبدأ API. به میزبان سادهای مانند localhost:2222 طرح آن افزوده میشود. |
| httpClient | java.net.http.HttpClient خودتان، برای یک پراکسی، یک SSLContext سفارشی یا یک اجراکننده. |
| timeout | اینکه یک تلاش چقدر میتواند طول بکشد. پیشفرض 30 ثانیه است، صفر آن را خاموش میکند، و بارگذاریها دستکم ده دقیقه صبر میکنند. |
| maxRetries | تعداد دفعاتی که یک درخواست ناموفق دوباره امتحان میشود. پیشفرض 2 است، و 0 یک بار میفرستد. |
| userAgent | سرآیند User-Agent را جایگزین میکند، که openemail-java/ بههمراه نسخه است. |
| header, headers | یک سرآیند به هر درخواست اضافه میکند. |
| disableUpdateNotice | آن یک خط در خروجی خطای استاندارد را که میگوید نسخهٔ تازهتری منتشر شده خاموش میکند. 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، که نشانیای است که سرور روی آن گوش میدهد. از127.0.0.1با همان درگاه استفاده کنید. - شناسهٔ خالی، یا شناسهای که فقط از نقطه ساخته شده و تجزیهگر URL آن را حذف میکند.
- دنبال کردن یک تغییر مسیر. کلاینت HTTP پیشفرض هرگز هیچ تغییر مسیری را دنبال نمیکند، پس اعتبارنامه هرگز به میزبان دیگری نمیرود.
چاپ کردن یک کلاینت، یک RequestOptions یا یک استثنا هرگز اعتبارنامه را نشان نمیدهد. کلید، توکن و مقدار سرآیندهای سفارشی از toString() و از هر پیامی که کلاینت مینویسد بیرون میمانند.
نقطهٔ پایانی بدون متد
client.raw().request هر مسیری را با اعتبارنامه، نشانی پایه، مهلت زمانی و سیاست تلاش دوبارهٔ کلاینت فراخوانی میکند. مسیر باید با یک / تنها آغاز شود، و مسیری که از مبدأ نشانی پایه بیرون برود رد میشود.
Object label = client.raw().request("POST", "/labels", Body.of("name", "Invoices")); System.out.println(label);