مشاريع Node-RED متوسطة التدفق (الجزء الثاني)

مبتدئ

image_pdf

الحصول على بيانات الزلازل من API الخارجية و إعادته كرسائل متعددة:

يوضح هذا المثال كيفية الحصول على بيانات من API الخارجية وكيفية فصل تلك البيانات باستخدام عقدة function. سوف نستخدم البيانات من API الخارجية والتي توفر الوصول إلى بيانات الزلزال التي يتم توفيرها من قبل المسح الجيولوجي الأمريكي (USGS) .

(http://earthquake.usgs.gov/earthquakes/feed/v1.0/geojson.php)

أولا، دعونا نقوم بإنشاء التدفق كما هو بالشكل التالي:

intermediate-flows-part2

قم بالتعديل على عقدة http request للحصول على البيانات من عنوان URL التالي كما هو موضح بالصورة أدناه:

http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_month.geojson

تحتوي هذه البيانات على الزلازل من الشهر الماضي. بعد طلب البيانات، عقدة JSON  سوف تسمح لك بتحليل محتوى الاستجابة إلى كائن قابل للاستخدام بواسطة عقدة Function التالية .

intermediate-flows-part2

الآن قم بالتعديل على عقدة function وإضافة التعليمات البرمجية كما هو مبين أدناه :

intermediate-flows-part2

شرح الكود :

سيؤدي هذا الكود إلى إنشاء مصفوفة (outputMsgs) تحتوي على مصفوفة من الرسائل التي تم إنشاؤها من بياناتك. تمر حلقة التكرار (For loop) من خلال استجابة JSON وتقوم بإنشاء رسالة جديدة تحتوي على حمولة تحتوي على خط العرض (lat) ، وخط الطول (lng) ، القيمة (value) ، الطابع الزمني (timestamp). ثم سيتم تدفع كائن الرسالة الجديدة إلى مصفوفة outputMsgs  .

فإنه سيتم إنشاء متغير جديد يدعى  (msg2) مع كائن رسالة جديدة تحتوي على عنصر الحمولة مع سلسلة “Second Output”.

وأخيرا، ستقوم الدالة (function) بإرجاع مصفوفة تحتوي على عنصرين. العنصر الأول هو مصفوفة من الرسائل  (outputMsgs); و العنصر الثاني هو رسالة واحدة (msg2). لذلك سنقوم بإعداد عقدة function ليكون لديها مخرجين . لتتناسب مع مجموعة العناصر التي يتم إرجاعها.

عند النقر فوق الزر الموجود على عقدة inject، يمكنك أن ترى الإخراج العلوي يحتوي على مصفوفة من الرسائل التي تم تحليلها من البيانات. هذا يتوافق مع مصفوفة outputMsgs .

intermediate-flows-part2

والمخرج الثاني يحتوي على رسالة واحدة (msg2) :

intermediate-flows-part2

X
تم إضافة المنتج إلى السلة بنجاح