تُطلق الآن واجهة برمجة برمجة التطبيقات FXMacroData GraphQL. جنباً إلى جنب مع نقاط النهاية REST الحالية، كل سطح بيانات أساسية سلسلة زمنية مؤشرات، استفسارات كتالوج البيانات، والبحث عن تقويم الإصدار متاح الآن من خلال مخطط GraphSQL واحد. احصل على الحقول التي تحتاج إليها بالضبط في رحلة ذهاب وإياب واحدة، واكتب استفسارات متعددة العملات في جسم طلب واحد، واستكشاف المخطط الكامل بشكل تفاعلي من خلال GraphiQL IDE المدمج.
ما الجديد
تم تركيب نقطة نهاية GraphQL في POST /api/v1/graphql ويكشف عن ثلاثة حقول استفسار جذري تعكس سطح REST الإنتاج:
announcements
احضر بيانات مؤشر الاقتصاد الكلي التاريخي لأي عملة مدعومة وسلج مؤشر. يعيد نفس date- لا valو
announcement_datetime الحقول كنقطة نهاية REST، بالإضافة إلى اختيارية
pct_change و pct_change_12m الحقول
dataCatalogue
أدرج جميع المؤشرات المتاحة للعملة، بما في ذلك سمك مؤشر، الاسم القابل للقراءة من قبل الإنسان، وحدة، وتكرار التحديث، وما إذا كان هناك توقعات رسمية للبنك المركزي.
calendar
استفسار العلامات الزمنية الإصدار الاقتصادي القادم لأي عملة مدعومة، مع مرشح مؤشر اختيارية. يعيد العلامة الزمني يونكس العصر حتى تتمكن من جدولة المتابعة البيانات احتياجات بدقة.
المصادقة تستخدم نفس مفتاح API كما سطح REST تمريره كـ api_key
المخطط مكتوب بقوة: يتم توثيق كل حقل، حجج، وكل كائن عائد مباشرة في المخطيط، لذلك يعمل التدقيق الذاتي وملء آلي IDE خارج الصندوق.
لماذا يهم التجار والمطورين
نقاط النهاية REST فعالة للبحث عن مؤشر واحد. تصبح GraphQL ذات قيمة في اللحظة التي يمتد فيها سير العمل الخاص بك على عملات متعددة أو مؤشرات متعددة ، أو سطح بيانات متعدده في دورة تحليلية واحدة.
فكر في نموذج انتشار العملات المتقاطعة الذي يحتاج إلى تاريخ التضخم وسعر السعر السياسي لستة عملات G10 في وقت واحد. مع REST تقوم بإصدار اثني عشر طلب HTTP متتابع. مع GraphQL ترسل جسم طلب واحد يحتوي على ستة announcements تسميات ميدانية وتتلقى الاستجابة المشتركة في رحلة ذهاب وعودة واحدة خفض فترة تأخير، والحد من تكاليف الاتصال العامة، والحفاظ على كود العميل خطية.
اختيار الحقل الدقيق
اسأل فقط عن الحقول التي يستخدمها نموذجك إذا كنت بحاجة
date و val لكن ليس التغيرات النسبة المئوية، اتركهم خارج. الخادم يتخطى حساب أي شيء ليس في مجموعة الاختيار الخاصة بك.
تكامل نقطة نهاية واحدة
عنوان URL أساسي واحد ، وآلية التحقق واحدة ، وغلاف استجابة واحد. أدوات تتحدث بالفعل GraphQL Apollo Client ، graphql-request ، gql في Python ، ghql في R تدمج دون أي طبقة محول REST مخصصة.
البحث على النمط الأول
اطلاق استفسار التدقيق الذاتي لتعداد كل عملة متاحة، مؤشر، ونوع الحقل برمجيا لا حاجة إلى كشط وثائق منفصلة.
سياق الهدف للبنك المركزي
- ... announcements الاستفسار يعيد اختياريا
cbTarget موضوع بجانب سلسلة البيانات يعطيك نطاق الهدف الحالي للبنك المركزي، وتاريخ التنفيذ، والمصدر في نفس الاستجابة.
مثال عملي: استفسار التضخم متعدد العملات
لنفترض أنك تقوم ببناء لوحة تحكم تضخم G3 وتحتاج إلى آخر اثني عشر شهرا من بيانات مؤشر أسعار المستهلكين للدولار الأمريكي واليورو والجنيه الإسترليني في لقطة واحدة. بدلا من ثلاثة مكالمات متتالية REST، كنت
announcements المجال ثلاث مرات داخل مستند GraphQL واحد:
curl -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "{ usd: announcements(currency: \"USD\", indicator: \"inflation\", startDate: \"2025-04-01\") { currency indicator data { date val announcementDatetime } } eur: announcements(currency: \"EUR\", indicator: \"inflation\", startDate: \"2025-04-01\") { currency indicator data { date val announcementDatetime } } gbp: announcements(currency: \"GBP\", indicator: \"inflation\", startDate: \"2025-04-01\") { currency indicator data { date val announcementDatetime } } }"
}'
ردّ ممثل:
{
"data": {
"usd": {
"currency": "USD",
"indicator": "inflation",
"data": [
{ "date": "2026-03-01", "val": 2.8, "announcementDatetime": 1743253200 },
{ "date": "2026-02-01", "val": 3.0, "announcementDatetime": 1740747600 }
]
},
"eur": {
"currency": "EUR",
"indicator": "inflation",
"data": [
{ "date": "2026-03-01", "val": 2.3, "announcementDatetime": 1743340800 },
{ "date": "2026-02-01", "val": 2.4, "announcementDatetime": 1740834000 }
]
},
"gbp": {
"currency": "GBP",
"indicator": "inflation",
"data": [
{ "date": "2026-03-01", "val": 2.6, "announcementDatetime": 1743253200 },
{ "date": "2026-02-01", "val": 2.8, "announcementDatetime": 1740747600 }
]
}
}
}
ثلاث عملات، رحلة ذهاب ذهاب HTTP واحدة. announcementDatetime يمنحك العصر في كل نقطة بيانات الثانية الدقيقة التي تم فيها إصدار الطباعة، لذا يمكنك محاذاة السلسلة على وقت الحدث بدلاً من الشهر التقويمي عند نمذجة ردود فعل السوق.
النقطة النهائية لسعر سعر العملة الأمريكي
و معادلاته باليورو والجنيه الإسترليني لإضافة طبقة الفارق السعر.
مثال عملي: اكتشاف المؤشرات المتاحة
قبل بناء نموذج جديد، يمكنك استفسار كتالوج البيانات عبر GraphQL لتعدد كل مؤشر متاح لعملة، بما في ذلك تواتر تحديثها وما إذا كان هناك توقعات رسمية للبنك المركزي تصاحب الإصدار:
curl -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "{ dataCatalogue(currency: \"AUD\") { currency indicators { slug name unit frequency hasOfficialForecast } } }"
}'
الرد التمثيلي (مقطوع):
{
"data": {
"dataCatalogue": {
"currency": "AUD",
"indicators": [
{
"slug": "policy_rate",
"name": "Cash Rate Target",
"unit": "%",
"frequency": "irregular",
"hasOfficialForecast": false
},
{
"slug": "inflation",
"name": "CPI Inflation",
"unit": "%",
"frequency": "quarterly",
"hasOfficialForecast": false
},
{
"slug": "unemployment",
"name": "Unemployment Rate",
"unit": "%",
"frequency": "monthly",
"hasOfficialForecast": false
}
]
}
}
}
الرصاصات التي عادت إلى الموقع indicator الحجة من
announcements استفسار لا حاجة إلى مرور وثائق منفصلة. يمكنك كتابة خطوة الاكتشاف وبناء دفعة طلب تلقائيًا لأي مؤشرات يتطلبها نموذجك. تصفح مؤشر AUD الكامل المحدد في
وثائق API AUD.
مثال عملي: البحث عن تقويم الإصدارات
معرفة متى يجب أن يتم طباعة الطباعة ذات التأثير العالي التالي أمر حاسم لتحديد حجم الموقف حول خطر الحدث. calendar يظهر الاستعلامات الزمنية المقبلة لأي عملة مدعومة، مع مرشح مؤشر اختياري لتضييق النتائج:
curl -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "{ calendar(currency: \"CAD\", indicator: \"policy_rate\") { currency indicator data { release announcementDatetime } } }"
}'
ردّ ممثل:
{
"data": {
"calendar": {
"currency": "CAD",
"indicator": "policy_rate",
"data": [
{
"release": "policy_rate",
"announcementDatetime": 1747400400
},
{
"release": "policy_rate",
"announcementDatetime": 1752580800
}
]
}
}
}
- ... announcementDatetime قيم هي أرقام كاملة في عصر يونيكس ألقها مباشرة في نظام جدولة أو تنبيه دون أي خطوة لفحص التاريخ. calendar الميدان تماما كما كنت ستعمل الاسم المستعار announcements: قم بإعداد استفسار واحد يغطي تواريخ أسعار الفائدة السياسية للدولار الكندي والدولار الأسترالي والدولار النزدي وتلقي إجابة تقويمية واحدة. انظر الملف الكامل
سعر المرجعية للسياسة CAD
لـ REST
GraphQL مقابل REST: متى تستخدم كل منهما
كلا الواجهتين تستندان إلى نفس مخزن البيانات المدعوم من Firestore وتحملان نفس المعلومات
announcement_datetime الدقة. الاختيار هو قرار سير العمل:
| سيناريو | واجهة توصية |
|---|---|
| مؤشر واحد، عملة واحدة | REST عنوان URL بسيط، وديّ للفيل |
| عملات أو مؤشرات متعددة في طلب واحد | GraphQL تحديد الميدان يزيل عدة رحلات ذهاب وإياب |
| عميل ذات نوع قوي (TypeScript ، Kotlin ، Swift) | GraphQL توليد أنواع من التدقيق الذاتي تلقائيًا |
| دفتر ملاحظات أو بيئة نصوص | REST أو GraphQL كلاهما فردي curl أو requests.get() المكالمات |
| استكشاف المخطط / اكتشاف الكتالوج | GraphQL التدقيق الذاتي يعيد المخطط الكامل دون كشط المستندات |
| خط الأنابيب القائم على REST | REST لا حاجة إلى الهجرة ؛ يتم الحفاظ على كلا السطحين بالتوازي |
ابدأ
نقطة نهاية GraphQL متاحة لجميع المشتركين على نفس مفتاح API المستخدم لسطح REST. لا يلزم تكوين إضافي.
الخطوات الأولى
- اطلق سؤالك الأول
curl -X POST "https://fxmacrodata.com/api/v1/graphql?api_key=YOUR_API_KEY" -H "Content-Type: application/json" -d '{"query":"{ dataCatalogue(currency: \"USD\") { indicators { slug name } } }"}' - استكشف المخطط الحي باستخدام مركز توثيق واجهة برمجة التطبيقات
- اطلع على جميع المؤشرات المدعومة حسب العملة على وثائق API
- لا مفتاح API بعد؟ اشترك للبدء هناك مستوى مجاني متاح.