تخطَّ إلى المستندات
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());
الخيارما تفعله
apiKeyمفتاح API لمساحة العمل، ويبدأ بـ oe_live_ أو oe_test_. وعند تمريره في استدعاء، يعمل بمفتاح آخر لذلك الاستدعاء فقط.
accessTokenرمز وصول OAuth لتطبيق ربطه شخص ما. مرّر مفتاحًا أو رمزًا، لا كليهما.
accessToken(Supplier<String>)دالة تعيد رمز الوصول. تُنفَّذ قبل كل طلب، فهي المكان المناسب لتجديد الرمز.
baseUrlأصل الواجهة البرمجية. المضيف المجرد مثل 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 أي خيار آخر بالاسم الذي تستخدمه الواجهة البرمجية. تقبل كل دالة الخيارات التي يسردها مدخلها في المرجع، والخيار الذي لا ينطبق يُرفض قبل إرسال أي شيء.

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.
  • عنوان URL أساسي على 0.0.0.0، وهو عنوان يستمع عليه الخادم. استخدم 127.0.0.1 مع المنفذ نفسه.
  • معرّف فارغ، أو معرّف مكوّن من نقاط فقط، كان محلل عناوين URL سيحذفه.
  • تتبّع إعادة التوجيه. عميل HTTP الافتراضي لا يتبع أي إعادة توجيه، فلا تنتقل بيانات الاعتماد أبدًا إلى مضيف آخر.

طباعة عميل أو RequestOptions أو استثناء لا تُظهر أبدًا بيانات اعتماد. المفتاح والرمز وقيم الترويسات المخصصة تبقى خارج toString() وخارج كل رسالة يكتبها العميل.

نقطة نهاية بلا دالة

تستدعي client.raw().request أي مسار ببيانات اعتماد العميل وعنوانه الأساسي ومهلته وسياسة إعادة المحاولة لديه. يجب أن يبدأ المسار بعلامة / واحدة، والمسار الذي يخرج عن أصل العنوان الأساسي يُرفض.

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