Documentation Index
Fetch the complete documentation index at: https://benzinga-2-locadex-parallel-main.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
عدة تطوير البرمجيات SDK بلغة Java ملائمة للمطورين وآمنة من حيث الأنواع، ومصممة خصيصًا للاستفادة من واجهة برمجة التطبيقات openapi.
واجهات برمجة التطبيقات API الخاصة بـ Benzinga: توفر واجهة برمجة تطبيقات REST هذه نقاط نهاية لجميع واجهات برمجة التطبيقات الخاصة بـ Benzinga.
تثبيت عدة تطوير البرمجيات (SDK)
يتطلب الأمر وجود JDK 11 أو أحدث.
توضح الأمثلة أدناه كيفية استخدام أرتيفاكت منشور من عدة تطوير البرمجيات SDK:
Gradle:
implementation 'org.benzinga:BZClient:0.2.7'
Maven:
<dependency>
<groupId>org.benzinga</groupId>
<artifactId>BZClient</artifactId>
<version>0.2.7</version>
</dependency>
بعد استنساخ مستودع git إلى نظام الملفات الخاص بك يمكنك إنشاء أرتيفاكت عدة تطوير البرمجيات SDK من المصدر في الدليل build بتشغيل الأمر ./gradlew build على أنظمة *nix أو gradlew.bat على أنظمة Windows.
إذا كنت ترغب في الإنشاء من المصدر ونشر أرتيفاكت عدة تطوير البرمجيات SDK إلى مستودع Maven المحلي لديك (على نظام الملفات الخاص بك) فاستخدم الأمر التالي (بعد استنساخ مستودع git محليًا):
على أنظمة *nix:
./gradlew publishToMavenLocal -Pskip.signing
على نظام التشغيل Windows:
gradlew.bat publishToMavenLocal -Pskip.signing
مثال على استخدام عدة تطوير البرمجيات (SDK)
مثال
package hello.world;
import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
public class Application {
public static void main(String[] args) throws Exception {
Bzclient sdk = Bzclient.builder()
.apiKeyAuth("<YOUR_API_KEY_HERE>")
.build();
GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
.page(700347L)
.pagesize(558834L)
.call();
if (res.modelsAnalystReportRawTexts().isPresent()) {
// معالجة الاستجابة
}
}
}
تدعم هذه عدة تطوير البرمجيات SDK مخطط الأمان التالي على مستوى العدة بالكامل:
| Name | Type | Scheme |
|---|
apiKeyAuth | apiKey | API key |
للمصادقة على واجهة برمجة التطبيقات API يجب ضبط معامل apiKeyAuth عند تهيئة مثيل عميل العدة. على سبيل المثال:
package hello.world;
import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
public class Application {
public static void main(String[] args) throws Exception {
Bzclient sdk = Bzclient.builder()
.apiKeyAuth("<YOUR_API_KEY_HERE>")
.build();
GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
.page(700347L)
.pagesize(558834L)
.call();
if (res.modelsAnalystReportRawTexts().isPresent()) {
// معالجة الاستجابة
}
}
}
الموارد والعمليات المتاحة
- جلب - جلب رؤى المحللين V1
- get - جلب بيانات النص الخام لتقارير المحللين
- get - جلب بيانات الشموع v2
- جلب - جلب Bulls Say Bears Say V1
- جلب - جلب مكالمات الأرباح
- جلب - جلب تقييمات الإجماع
- get - جلب الأرقام والنسب المشتقة V3
- getV22 - جلب توزيعات الأرباح V2.2
- get - جلب توزيعات الأرباح V2 و V2.1
- get - جلب نسب الربحية V2.1
- get - جلب نصوص مكالمات الأرباح
- getAudio - جلب الملفات الصوتية لمكالمات الأرباح
- get - جلب بيانات Economics
- get - جلب تقارير التداول الحكومية
- get - جلب التداولات الحكومية
- getV21 - جلب بيانات الاكتتابات العامة الأولية (IPOs) V2.1
- get - جلب بيانات الاكتتابات العامة الأولية (IPOs) V2
- bulkSync - جلب الشعارات لمفاتيح البحث المحددة
- search - جلب الشعارات لمفاتيح البحث المحددة
- get - جلب بيانات الاندماجات والاستحواذات
- جلب - جلب بيانات Newsquantified
- GET - جلب نسب التشغيل v2.1
- get - جلب بيانات OptionActivity V1
- getV1 - جلب الأسعار المتأخرة V1
- get - جلب عروض الأسعار المتأخرة V2
- get - جلب محللي التقييمات
- get - جلب العناصر المحذوفة (v2)
- get - جلب بيانات اتجاهات رمز التداول
- getList - جلب بيانات قائمة اتجاهات رمز التداول
- get - جلب نسب التقييم v2.1
بعض نقاط النهاية في هذه العدة تدعم إعادة المحاولة. إذا استخدمت عدة تطوير البرمجيات SDK بدون أي تهيئة، فسيتم استخدام استراتيجية إعادة المحاولة الافتراضية التي توفرها واجهة برمجة التطبيقات API. ومع ذلك، يمكن استبدال استراتيجية إعادة المحاولة الافتراضية لكل عملية على حدة، أو على مستوى العدة بالكامل.
لتغيير استراتيجية إعادة المحاولة الافتراضية لاستدعاء واحد لواجهة برمجة التطبيقات API، يمكنك تمرير كائن RetryConfig عبر أسلوب الباني retryConfig:
package hello.world;
import java.lang.Exception;
import java.util.concurrent.TimeUnit;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
import org.benzinga.BZClient.utils.BackoffStrategy;
import org.benzinga.BZClient.utils.RetryConfig;
public class Application {
public static void main(String[] args) throws Exception {
Bzclient sdk = Bzclient.builder()
.apiKeyAuth("<YOUR_API_KEY_HERE>")
.build();
GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
.retryConfig(RetryConfig.builder()
.backoff(BackoffStrategy.builder()
.initialInterval(1L, TimeUnit.MILLISECONDS)
.maxInterval(50L, TimeUnit.MILLISECONDS)
.maxElapsedTime(1000L, TimeUnit.MILLISECONDS)
.baseFactor(1.1)
.jitterFactor(0.15)
.retryConnectError(false)
.build())
.build())
.page(700347L)
.pagesize(558834L)
.call();
if (res.modelsAnalystReportRawTexts().isPresent()) {
// معالجة الاستجابة
}
}
}
إذا كنت ترغب في تجاوز استراتيجية إعادة المحاولة الافتراضية لجميع العمليات التي تدعم إعادة المحاولة، يمكنك توفير إعداد تكوين عند تهيئة عدة تطوير البرمجيات SDK:
package hello.world;
import java.lang.Exception;
import java.util.concurrent.TimeUnit;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
import org.benzinga.BZClient.utils.BackoffStrategy;
import org.benzinga.BZClient.utils.RetryConfig;
public class Application {
public static void main(String[] args) throws Exception {
Bzclient sdk = Bzclient.builder()
.retryConfig(RetryConfig.builder()
.backoff(BackoffStrategy.builder()
.initialInterval(1L, TimeUnit.MILLISECONDS)
.maxInterval(50L, TimeUnit.MILLISECONDS)
.maxElapsedTime(1000L, TimeUnit.MILLISECONDS)
.baseFactor(1.1)
.jitterFactor(0.15)
.retryConnectError(false)
.build())
.build())
.apiKeyAuth("<YOUR_API_KEY_HERE>")
.build();
GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
.page(700347L)
.pagesize(558834L)
.call();
if (res.modelsAnalystReportRawTexts().isPresent()) {
// معالجة الاستجابة
}
}
}
ستتوافق معالجة الأخطاء في عدة تطوير البرمجيات SDK هذه إلى حد كبير مع توقعاتك. تعيد كل عملية كائن استجابة أو تُطلِق استثناءً.
بشكل افتراضي، يؤدّي خطأ في واجهة برمجة التطبيقات API إلى إلقاء استثناء من النوع models/errors/APIException. عند تحديد استجابات أخطاء مخصّصة لعملية ما، قد تقوم عدة تطوير البرمجيات SDK أيضًا بإلقاء الاستثناء المرتبط بها. يمكنك الرجوع إلى جداول الأخطاء المقابلة في مستندات عدة تطوير البرمجيات SDK للحصول على مزيد من التفاصيل حول أنواع الاستثناءات الممكنة لكل عملية. على سبيل المثال، تقوم طريقة get بإلقاء الاستثناءات التالية:
| نوع الخطأ | رمز الحالة | نوع المحتوى |
|---|
| models/errors/ApiErrorResponse | 400, 500 | application/json |
| models/errors/APIException | 4XX, 5XX | / |
مثال
package hello.world;
import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.errors.ApiErrorResponse;
import org.benzinga.BZClient.models.operations.GetAnalystInsightsV1Request;
import org.benzinga.BZClient.models.operations.GetAnalystInsightsV1Response;
public class Application {
public static void main(String[] args) throws ApiErrorResponse, Exception {
Bzclient sdk = Bzclient.builder()
.apiKeyAuth("<YOUR_API_KEY_HERE>")
.build();
GetAnalystInsightsV1Request req = GetAnalystInsightsV1Request.builder()
.build();
GetAnalystInsightsV1Response res = sdk.analystInsights().get()
.request(req)
.call();
if (res.modelsAnalystInsightsJSON().isPresent()) {
// معالجة الرد
}
}
}
تحديد الخادم باستخدام الفهرس
يمكنك تجاوز الخادم الافتراضي عالميًا باستخدام أسلوب الـ builder .serverIndex(int serverIdx) عند تهيئة كائن عميل الـ SDK. سيتم بعد ذلك استخدام الخادم المحدد كخادم افتراضي في العمليات التي تستخدمه. يسرد هذا الجدول الفهارس المرتبطة بالخوادم المتاحة:
| # | الخادم |
|---|
| 0 | https://api.benzinga.com |
| 1 | https://api.benzinga.com/api/v1 |
| 2 | https://api.benzinga.com/api/v2 |
| 3 | https://api.benzinga.com/api/v2.1 |
| 4 | https://api.benzinga.com/api/v2.2 |
package hello.world;
import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
public class Application {
public static void main(String[] args) throws Exception {
Bzclient sdk = Bzclient.builder()
.serverIndex(4)
.apiKeyAuth("<YOUR_API_KEY_HERE>")
.build();
GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
.page(700347L)
.pagesize(558834L)
.call();
if (res.modelsAnalystReportRawTexts().isPresent()) {
// معالجة الاستجابة
}
}
}
تجاوز عنوان الخادم لكل عميل على حدة
يمكن أيضًا تجاوز الخادم الافتراضي على مستوى التطبيق باستخدام أسلوب الـ builder .serverURL(String serverUrl) عند تهيئة كائن عميل عدة تطوير البرمجيات SDK. على سبيل المثال:
package hello.world;
import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
public class Application {
public static void main(String[] args) throws Exception {
Bzclient sdk = Bzclient.builder()
.serverURL("https://api.benzinga.com")
.apiKeyAuth("<YOUR_API_KEY_HERE>")
.build();
GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
.page(700347L)
.pagesize(558834L)
.call();
if (res.modelsAnalystReportRawTexts().isPresent()) {
// معالجة الرد
}
}
}
عدة تطوير البرمجيات SDK هذه في مرحلة تجريبية (بيتا)، وقد تطرأ تغييرات غير متوافقة مع الإصدارات السابقة بين الإصدارات من دون إصدار رئيسي جديد. لذلك نوصي بتقييد استخدامك بإصدار معيّن من الحزمة. بهذه الطريقة، يمكنك تثبيت الإصدار نفسه في كل مرة من دون تغييرات غير متوافقة، إلا إذا كنت تبحث عمدًا عن أحدث إصدار.
بينما نقدّر المساهمات مفتوحة المصدر في عدة تطوير البرمجيات SDK هذه، فإن هذه المكتبة تُولَّد برمجياً. ستُستبدل أي تغييرات تُجرى يدوياً على الملفات الداخلية عند عملية التوليد التالية.
نتطلع إلى سماع ملاحظاتك. لا تتردد في فتح طلب سحب (PR) أو فتح بلاغ مشكلة (issue) مرفق بإثبات مفهوم، وسنبذل قصارى جهدنا لإدراج ذلك في إصدار مستقبلي.
عدة تطوير البرمجيات SDK التي طورتها Speakeasy