التحقق باستخدام Bruno
استخدم مجموعة Bruno للتحقق من المصادقة، واستعلامات الأجهزة، والتحكم في المرحّلات، ونقل بيانات RS485، والاستعلام عن نتائج الأوامر. مقارنةً بطلبَي curl، يغطي هذا المسار مساحة أوسع، وتتحقق التأكيدات (assertions) المدمجة تلقائيًا من بنية الاستجابة بدلًا من مقارنة JSON يدويًا.
قبل البدء
- جهّز
clientIdوclientSecret. - فعّل
device:read؛ فعّلdevice:controlأوdevice:configفقط إذا كنت ستنفّذ طلبات المرحّل أو RS485. - تأكّد أن الجهاز والمرحّل المستهدفَين آمنان للتحكم بهما.
- ليس لديك عتاد أو بيانات اعتماد بعد؟ تواصل مع support@svnwi.com لطلب بيانات اعتماد تجريبية وطُرز أجهزة العرض التوضيحي المتاحة — لست بحاجة لشراء عتاد أولًا.
1. تثبيت Bruno
نزّل تطبيق سطح المكتب Bruno. لبيئات CI أو بلا واجهة، ثبّت واجهة سطر الأوامر:
npm install -g @usebruno/cli
bru --version2. الحصول على المجموعة
تحتاج فقط إلى مجلد examples/bruno من مستودع SDK، وليس المستودع بأكمله. استخدم sparse checkout لجلب هذا الجزء فقط:
git clone --filter=blob:none --sparse https://github.com/svnwi/wlte-openapi-sdk.git
cd wlte-openapi-sdk
git sparse-checkout set examples/brunoافتح هذا المجلد في تطبيق سطح المكتب Bruno:
examples/bruno/WLTE-OpenAPI/3. إعداد بيانات الاعتماد
يحتوي ملف environments/quickstart.bru الموجود في المستودع على قيم نائبة (placeholders) فقط، لذا فمن الآمن أن يظهر في سجل Git. تُوضع بيانات الاعتماد الحقيقية في نسخة محلية لا تُرفع أبدًا:
cd examples/bruno/WLTE-OpenAPI
cp environments/quickstart.bru environments/quickstart.local.bruافتح environments/quickstart.local.bru واستبدل فقط:
clientId -> your_client_id
clientSecret -> your_client_secretاختر بيئة quickstart.local في Bruno. تملأ سكربتات المجموعة accessToken وdeviceId وcommandId تلقائيًا؛ تكون relayIndex بقيمة 1 افتراضيًا.
quickstart.local.bru مستبعد بالفعل عبر .gitignore — لا تغيّر هذه القاعدة.
4. تنفيذ التحقق للقراءة فقط
نفّذ هذه الطلبات بالترتيب:
| الترتيب | الطلب | الغرض |
|---|---|---|
| 1 | 00-auth / Auth | الحصول على access token |
| 2 | 01-device-queries / 01-list-devices | تأكيد الأجهزة المتاحة وملء deviceId تلقائيًا |
| 3 | 01-device-queries / 02-get-device-real-time-status | تحديث وقراءة حالة جهاز واحد |
| 4 | 01-device-queries / 03-list-profiles | الاستعلام عن تعريفات نوع الجهاز لتأكيد القدرات |
| 5 | 01-device-queries / 04-get-device-config | قراءة الإعداد الحالي (سرعة النقل، مدة النبضة، إلخ) |
تتحقق التأكيدات المدمجة من حالة HTTP وبنية الاستجابة.
5. اختياري: التحقق من التحكم في الجهاز
تغيّر أوامر الأجهزة حالة العتاد الحقيقي. تابع فقط إذا كانت لدى API Client الصلاحية المطابقة وكانت العملية آمنة؛ اختر ما تحتاجه من الطلبات:
| الترتيب | الطلب | الغرض | الصلاحية المطلوبة |
|---|---|---|---|
| 6 | 02-relay-control / 01-turn-relay-on | تشغيل مرحّل واحد | device:control |
| 7 | 02-relay-control / 02-turn-relay-off | إيقاف مرحّل واحد | device:control |
| 8 | 02-relay-control / 03-jog-relay | تشغيل نبضة واحدة | device:control |
| 9 | 02-relay-control / 04-set-relay-jog-time | تعيين مدة النبضة (لا يغيّر حالة المرحّل الحالية) | device:config |
| 10 | 02-relay-control / 05-control-multiple-relays | التحكم في عدة مرحّلات في طلب واحد | device:control |
| 11 | 04-rs485 / 01-rs485-transceive | إرسال بيانات نقل شفاف عبر RS485 (يتطلب جهازًا يدعم RS485) | device:control |
| 12 | 04-rs485 / 02-set-rs485-baud-rate | تعيين سرعة نقل RS485 | device:config |
| 13 | 03-command-result / 01-get-command-result | الاستعلام عن النتيجة النهائية باستخدام commandId من خطوة سابقة | device:read |
للتكاملات المخصصة للقراءة فقط، تخطَّ هذا القسم بأكمله. قبل اختبار طلبات RS485، عيّن rs485DeviceId إلى جهاز يدعم RS485 فعليًا (يعود افتراضيًا إلى أول جهاز مكتشَف لغرض التنقّل في المجموعة فقط، ولا يعني ذلك دعم RS485).
الاستخدام عبر سطر الأوامر
تتيح واجهة سطر الأوامر اختيار المجلدات المراد تنفيذها بحسب المسار، بحيث يمكنك الفصل بين التحقق للقراءة فقط والتحكم في الأجهزة كأمرين منفصلين، بدلًا من أمر واحد قد يُشغّل المرحّلات عن غير قصد:
cd examples/bruno/WLTE-OpenAPI
# التحقق للقراءة فقط: يقرأ البيانات فقط، ولا يغيّر حالة أي جهاز
bru run --env-file environments/quickstart.local.bru \
00-auth 01-device-queries
# التحقق من التحكم: يشغّل المرحّلات وأجهزة RS485 فعليًا — تأكّد أن ذلك آمن أولًا
bru run --env-file environments/quickstart.local.bru \
02-relay-control 04-rs485 03-command-resultلا تنفّذ bru run --env quickstart دون مسارات
دون مسار مجلد، ينفّذ bru run جميع طلبات المجموعة بشكل تكراري، بما في ذلك تشغيل/إيقاف المرحّلات، والنبضة، وأوامر RS485 — حتى لو أردت تحقق قراءة فقط. حدّد المجلدات دائمًا صراحةً كما هو موضّح أعلاه.
للتكامل الأول، يكون تطبيق سطح المكتب أسهل لفحص متغيرات البيئة والتأكيدات ومحتوى الاستجابات. واجهة سطر الأوامر أنسب للتحقق المتكرر أو CI.
نتيجة التحقق
بعد إتمام هذه الصفحة، تكون قد تحققت من:
- مصادقة API Client
- الوصول إلى الأجهزة، وحالتها الفورية، وإعدادها، وتعريفات نوعها
- التحكم الاختياري في المرحّلات، ونقل بيانات RS485، والاستعلام عن نتائج الأوامر
لا تراقب حسابًا بأكمله عبر تكرار طلبات جهاز واحد. استخدم قوائم الأجهزة للعروض الجماعية وأحداث WebSocket للتغيّرات المستمرة.
