استخدم Narwhal API في Power BI

يمكنك استخدام Power BI وNarwhal API لجلب الإجازات الرسمية وتواريخ الإصدار والبيانات الاقتصادية والسلع وأسعار الصرف واحتمالات أسواق التنبؤ إلى تقرير. استخدم Power Query M في Power BI Desktop، ثم جدول تحديث مجموعة البيانات في خدمة Power BI.

ما الذي ستعدّه

تُعدّ استعلامات التقرير في Power BI Desktop، وتحصل في النهاية على استعلام منفصل لكل مجال بيانات تستخدمه. يتضمن المثال Holidays وReleases وCpi وBrent وFx وFed. استخدم Holidays جدولَ تواريخ، واستخدم سعر Brent وأسعار الصرف مقاييس.

يستخدم Narwhal API حسابًا واحدًا ومفتاح API واحدًا عبر واجهات البيانات التابعة له. يشترك REST وMCP في المفتاح نفسه. في Power BI تستخدم الطلبات REST مع عنوان القاعدة https://api.narwhalapi.com ورأس Authorization.

اضبط مفتاح API الخاص بك

  1. أنشئ مفتاحًا مجانيًا أنشئ مفتاحك المجاني من narwhalapi.com/signup. استخدم هذا المفتاح لمجالات البيانات التي تريد جلبها إلى Power BI.
  2. تخزين المفتاح احتفظ بالمفتاح في متغير بيئة اسمه NARWHAL_API_KEY. في مثال M، استبدل YOUR_KEY في الرأس بمفتاحك؛ ويجب أن يكون الرأس Authorization: Bearer YOUR_KEY مع وضع قيمتك الخاصة بدل العنصر النائب.

يستخدم الكود M المرفق المفتاح مباشرة في Headers. يحتوي رأسه على قيمة Bearer التي يستخدمها Web.Contents؛ ومتغير البيئة هو المكان الذي تحفظ فيه مفتاحك خارج الاستعلام. الصق مفتاحك في العنصر النائب عند تجهيز الاستعلام لـ Power BI.

افتح استعلامًا فارغًا في Power BI Desktop

  1. ابدأ من Get Data في Power BI Desktop، استخدم Get Data وافتح Blank Query. هنا ستضيف Power Query M الخاص بطلب API.
  2. الصق M في Advanced Editor افتح Advanced Editor والصق مثال M من القسم التالي. يعيد المثال Holidays؛ وفي الاستخدام الفعلي يكون كل مجال بيانات آخر استعلامًا مستقلًا.
  3. استخدم مصادقة Anonymous اضبط مصدر الويب على مصادقة Anonymous. يوضع مفتاح API في رأس الطلب الذي يوفره استعلام M.

اسحب البيانات بالكود

الصق Power Query M هذا في Advanced Editor. تقبل الدالة المساعدة Narwhal مسارًا وسجل استعلام اختياريًا، وتستدعي Web.Contents، وتقرأ استجابة JSON. ثم يختار كل مجال حقل الاستجابة الخاص به. يحوّل Table.FromRecords مجموعات السجلات إلى جداول، بينما يقرأ تعبير Brent الحقل price باستخدام Number.FromText.

Power Query M، ستة مجالات
let
    Narwhal = (path as text, optional query as record) =>
        Json.Document(Web.Contents("https://api.narwhalapi.com", [
            RelativePath = path,
            Query = if query = null then [] else query,
            Headers = [Authorization = "Bearer YOUR_KEY"]
        ])),
    Holidays = Table.FromRecords(Narwhal("v1/calendars/holidays/USA/2026")[holidays]),
    Releases = Table.FromRecords(
        Narwhal(
            "v1/economics/calendar",
            [countries = "USA", start_date = "2026-11-01",
             end_date = "2026-11-30", limit = "100"]
        )[releases],
        {"at", "period", "topic", "status"}, MissingField.UseNull),
    Cpi = Table.FromRecords(
        Narwhal("v1/economics/USA/cpi/observations", [start = "2025-09"])[observations]
    ),
    Brent = Number.FromText(Narwhal("v1/commodities/spot/BRENT/USD")[price]),
    Fx = Table.FromRecords(Narwhal("v1/fx/rates/USD", [currencies = "EUR,IDR"])[rates]),
    Fed = Table.FromRecords(
        Narwhal("v1/predictions/policy-paths/federal-reserve")[meetings]
    )
in
    // return Releases, Cpi, Fx or Fed the same way;
    // each area is its own query in practice
    Holidays

يحدد التعبير الذي يلي in النتيجة التي يعيدها الاستعلام. أبقه Holidays لجدول الإجازات الرسمية، أو أعد Releases أو Cpi أو Fx أو Fed لتلك الجداول. وأعد Brent للسعر. أبقِ الدالة المساعدة عند تجهيز كل استعلام منفصل؛ فعينات المجالات تستخدم الدالة المساعدة نفسها.

شغّله وفق جدول

اضبط جدول تحديث مجموعة البيانات في خدمة Power BI. يمكن تحديث مجموعة بيانات تستخدم Web.Contents مع عنوان قاعدة ثابت وRelativePath وQuery وفق جدول زمني. حافظ على بنية الطلب هذه في الاستعلامات التي تستخدمها للتقرير.

يضع المثال https://api.narwhalapi.com في Web.Contents، ومسار كل نقطة نهاية في RelativePath، وأي معاملات للطلب في Query. وتنطبق البنية نفسها على جدول الإجازات الرسمية وملاحظات CPI والمجالات الأخرى. لمزيد من إرشادات الجدولة، استخدم جدولة جلب البيانات يوميًا.

الإجازات الرسمية في Power BI

استخدم استعلام الإجازات الرسمية للولايات المتحدة لعام 2026 جدولَ تواريخ باسم Holidays. اقرأ المجموعة holidays التي تحتوي سجلاتها على date وname. مع بقاء الدالة المساعدة Narwhal في الاستعلام، يعيد هذا التعبير سجلات الإجازات الرسمية جدولًا.

Power Query M للإجازات الرسمية
Table.FromRecords(
    Narwhal("v1/calendars/holidays/USA/2026")[holidays]
)

تواريخ الإصدار في Power BI

اجلب تقويم الإصدارات الاقتصادية للولايات المتحدة لشهر نوفمبر 2026. اقرأ releases وأبقِ الحقول at وperiod وtopic وstatus. يستخدم هذا الطلب countries وstart_date وend_date وlimit في سجل الاستعلام؛ ويحتفظ تعبير الجدول بقائمة الحقول من المثال الكامل.

Power Query M لتواريخ الإصدار
Table.FromRecords(
    Narwhal(
        "v1/economics/calendar",
        [countries = "USA", start_date = "2026-11-01",
         end_date = "2026-11-30", limit = "100"]
    )[releases],
    {"at", "period", "topic", "status"}, MissingField.UseNull)

البيانات الاقتصادية في Power BI

اطلب ملاحظات CPI للولايات المتحدة مع ضبط start على 2025-09. حقل الاستجابة هو observations، ولكل ملاحظة period وvalue. استخدم استعلام Cpi لإعادة هذه السجلات جدولًا، مع إبقاء معامل start في سجل استعلام الدالة المساعدة.

يقرأ كل حساب السجل الكامل. إذا بدأت السلسلة بعد تاريخ البداية المطلوب، تبدأ الاستجابة من أول رصد لها.

Power Query M لـ CPI
Table.FromRecords(
    Narwhal("v1/economics/USA/cpi/observations", [start = "2025-09"])[observations]
)

السلع في Power BI

اطلب سعر Brent الفوري بالدولار الأمريكي (USD) واقرأ price. يحوّل تعبير Brent هذا الحقل باستخدام Number.FromText؛ استخدم السعر الناتج مقياسًا. تشمل رموز السلع الفورية مثلًا XAU وXAG وXPT وXPD وXCU وBRENT وWTI.

Power Query M لـ Brent
Number.FromText(
    Narwhal("v1/commodities/spot/BRENT/USD")[price]
)

أسعار الصرف في Power BI

اطلب أسعار صرف USD لـ EUR وIDR عبر المعامل currencies. اقرأ المجموعة rates التي يحتوي كل سجل فيها على currency وrate. أعد Fx جدولًا للتقرير، واستخدم أسعار الصرف مقاييس.

Power Query M لأسعار الصرف
Table.FromRecords(
    Narwhal("v1/fx/rates/USD", [currencies = "EUR,IDR"])[rates]
)

التنبؤات في Power BI

اجلب احتمالات أسواق التنبؤ لمسار سياسة الاحتياطي الفيدرالي (Federal Reserve) إلى استعلام Fed. اقرأ meetings من الاستجابة وحوّل تلك السجلات إلى جدول. لكل اجتماع resolves_at وp_cut وp_hold وp_hike، لذا أبقِ هذه الحقول متاحة في الجدول المعاد.

Power Query M للتنبؤات
Table.FromRecords(
    Narwhal("v1/predictions/policy-paths/federal-reserve")[meetings]
)

لماذا نستخدم عنوان قاعدة ثابتًا؟

يستخدم Power BI عنوان القاعدة عند التحديث في الخدمة. أبقِ القاعدة ثابتة، وضع مسار نقطة النهاية في RelativePath والمعاملات في Query. فمثلًا، تُوضع معاملات الدولة والتاريخ الخاصة بتقويم الإصدارات في سجل الاستعلام الذي يُمرَّر إلى الدالة المساعدة.

هل من الآمن مشاركة مفتاح API في تقرير؟

المفتاح موجود في الاستعلام، لذا شارك التقرير فقط مع من يحق لهم رؤية المفتاح. مصادقة Anonymous هي إعداد مصدر الويب المستخدم هنا؛ ومع ذلك يرسل الطلب مفتاح API في الرأس Authorization.

نُشر في .

الخطوات التالية