إنشاء استعلام Data Explorer باستخدام API

إنشاء استعلام مستكشف البيانات باستخدام واجهة برمجة التطبيقات (API)

:bookmark: يشرح هذا الدليل الإرشادي كيفية إنشاء استعلام مستكشف البيانات باستخدام واجهة برمجة تطبيقات Discourse.

:person_raising_hand: مستوى المستخدم المطلوب: المسؤول (Administrator)

المتطلبات الأساسية

قبل أن تبدأ، تأكد من أن لديك:

:information_source: يتطلب إنشاء الاستعلامات مفتاح API عامًا. يتيح النطاق الجزئي “تشغيل الاستعلامات” فقط تشغيل الاستعلامات الموجودة، وليس إنشاء استعلامات جديدة.

إنشاء استعلام

لإنشاء استعلام جديد لـ Data Explorer، أرسل طلب POST إلى /admin/plugins/discourse-data-explorer/queries.

المعلمات

المعلمة مطلوب الوصف
query[name] نعم الاسم الذي ستطلقه على الاستعلام
query[sql] نعم عبارة SQL المطلوب تنفيذها
query[description] لا وصف لما يفعله الاستعلام
query[group_ids] لا مصفوفة من مُعرفات المجموعات (Group IDs) التي يمكنها الوصول إلى هذا الاستعلام

مثال الطلب

curl -X POST "https://your-site.com/admin/plugins/discourse-data-explorer/queries" \
  -H "Content-Type: multipart/form-data;" \
  -H "Api-Key: \u003capi-key\u003e" \
  -H "Api-Username: \u003cusername\u003e" \
  -F 'query[name]=User count query' \
  -F 'query[sql]=SELECT COUNT(*) FROM users'

مثال الاستجابة

{
  "query": {
    "id": 49,
    "name": "User count query",
    "description": null,
    "username": "\u003cusername\u003e",
    "group_ids": [],
    "last_run_at": "2025-03-13T18:41:44.226Z",
    "user_id": 1,
    "is_default": false,
    "sql": "SELECT COUNT(*) FROM users",
    "param_info": [],
    "created_at": "2025-03-13T18:41:44.226Z",
    "hidden": false
  }
}

لاحظ قيمة id في الاستجابة، ستحتاجها لتشغيل الاستعلام. للحصول على تفاصيل حول تشغيل الاستعلامات عبر واجهة برمجة التطبيقات، راجع تشغيل استعلامات مستكشف البيانات باستخدام واجهة برمجة تطبيقات Discourse.

6 إعجابات

لقد قمت بتغيير مسار استدعاء واجهة برمجة التطبيقات (API) وأفسدت استعلامي!؟ كان المسار سابقًا /admin/plugins/explorer/queries/3/run وفجأة بدأ إجراء GitHub بالفشل. هذا لا يبدو لطيفًا على الإطلاق.

3 إعجابات

تعطلت أدواتنا بسبب تغيير المسار هذا وأيضًا بسبب التغيير الذي يتطلب مفتاح واجهة برمجة تطبيقات عام (Global API key) بدلاً من مفتاح القراءة فقط (Read-only API key)، والذي كان كافياً في السابق.

كان ذلك مزعجًا.

يبدو ذلك وكأنه خطأ.