السلام عليكم ورحمة الله وبركاته
منذ مدة حاولت استعمال الـ API الخاص بالدرر السنية
لكنني واجهت بعض الصعوبات منها أن الـ API يتعامل مع JSONP فقط وأيضًا لن تستطيع التعامل معه بالطرق العادية بسبب الـ CORS
وإن نجحت بتجنب الـ CORS باستعمال JSONP فتحصل على الناتج بهيئة HTML
وأيضًا لا يوجد documentation أو مستند ما يشرح تفاصيل هذا الـ API وكيفية التعامل معه
فأنا قررت عمل API وسيط يتجنب مشكلة CORS ويعطيك البيانات كهيئة JSON
بجانب شرح مفصل للـ API وكيفية استخدامه
بالاضافة إلى احتواءه على بعض الخصائص الإضافية التي لا توجد في الـ API الرسمي
- يتم عمل
cacheلكل عملية بحث لمدة5ثواني - هناك حد للاستخدام:
100عملية بحث في اليوم لكلIP
يمكنك تعديلهم من ملف config.js
- عمل
forkأوcloneلهذا المشروع - تثبيت الـ
dependencies
npm install- تفقد ملف config.js وقم بتعديل ما تريده
- تشغيل الـ
API
npm start- الـ
APIسيكون متوفر على الرابط التالي
http://localhost:5000- استخدمه على
localhostكما تريد أو ارفعه على استضافة أو سيرفر خاص بك
الرابط: Postman
- استعمل
Postmanلتعرف كيف تتعامل مع الـAPIوترى أمثلة عليه - قم بعمل
forkللـcollectionلتستخدمه كما تريد - لا تنس تغير الـ
environmentإلىdevويمكنك تغير الرابط الخاص بالمتغير{{url}}ان كنت قد غيرته أو غيرت الـport
لعرض وثائق API التفاعلية:
-
قم بتشغيل الـ
Server:npm run dev
-
افتح المتصفح وانتقل إلى:
http://localhost:5000/api-docs
ستجد هنا واجهة Swagger UI التي تتيح لك استكشاف جميع نقاط النهاية المتاحة واختبار الـ API مباشرة من المتصفح
يتضمن المشروع Server خاص للـ MCP والذي سمح لأي LLMs الوصول المباشر إلى API الأحاديث
بالتالي يسمح لأدوات الذكاء الاصطناعي مثل Claude و Copilot بالبحث في الأحاديث والحصول على المعلومات بسهولة
-
تأكد من تشغيل الـ
API:npm start
-
تشغيل
ServerالـMCP:انتقل إلى مجلد
mcp-serverوقم بتثبيت الـdependencies:cd mcp-server npm install -
تشغيل
ServerالـMCP:npm run mcp
الآن بحسب الأداة التي تريد استخدامها مع MCP قم بإعدادها
قم بإنشاء مجلد يدعى .vscode
قم بإنشاء ملف mcp.json بداخله
{
"servers": {
"dorar-hadith": {
"command": "node",
"args": ["./mcp-server/index.js"],
"env": {
"DORAR_API_BASE_URL": "http://localhost:5000/v1"
}
}
}
}الآن قم بتشغيل الـ MCP من خلال الضغط على F1 ثم البحث عن MCP: List Servers
اختر dorar-hadith واضغط على Enter
search_hadith_api- البحث في الأحاديث عبر APIsearch_hadith_site- البحث في الأحاديث عبر الموقعget_hadith_by_id- الحصول على حديث محددget_similar_hadiths- الحصول على أحاديث مشابهةget_alternate_hadith- الحصول على الحديث الصحيح البديلget_usul_hadith- الحصول على أصول الحديثsearch_sharh- البحث في شروح الأحاديثget_sharh_by_id- الحصول على شرح محددget_sharh_by_text- البحث عن شرح بالنصget_mohdith_info- معلومات المحدثget_book_info- معلومات الكتابget_books_data- قائمة جميع الكتبget_degrees_data- قائمة درجات الأحاديثget_mohdith_data- قائمة المحدثينget_rawi_data- قائمة الرواة
يحتوي الـ API على مجموعة من الـ endpoint
- عندما يبدأ الـ
endpointبـ/apiفهو هكذا يبحث عن طريق الـAPIالرسمي الخاص بالدرر السنية - عندما يبدأ الـ
endpointبـ/siteفهو هكذا يبحث عن طريق صفحة البحث الخاص بالدرر السنية
للبحث عن الأحاديث يعطي 15 نتيجة
شكل الرد كـ JSON
{
"metadata": {
"length": "عدد نتائج البحث",
"page": "رقم الصفحة",
"removeHTML": "هل عناصر الـ HTML ممسوحة أم لا",
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": [
{
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"book": "الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة"
}
]
}للبحث عن الأحاديث يعطي 30 نتيجة
شكل الرد كـ JSON
{
"metadata": {
"length": "عدد نتائج البحث",
"page": "رقم الصفحة",
"removeHTML": "هل عناصر الـ HTML ممسوحة أم لا",
"specialist": "نوع الاحاديث هل هي للمتخصصين أم لا",
"numberOfNonSpecialist": "عدد الأحاديث لغير المتخصصين",
"numberOfSpecialist": "عدد الأحاديث للمتخصصين",
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": [
{
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"mohdithId": "رقم المحدث",
"book": "الكتاب",
"bookId": "رقم الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"explainGrade": "توضيح درجة الصحة",
"takhrij": "تخريج الحديث في كتب أخرى",
"hadithId": "رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح",
"hasSimilarHadith": "هل الحديث له أحاديث مشابهة أم لا",
"hasAlternateHadithSahih": "هل الحديث له حديث صحيح بديل أم لا",
"hasUsulHadith": "هل الحديث له أصول أم لا",
"similarHadithDorar": "رابط الأحاديث المشابهة في موقع الدرر",
"alternateHadithSahihDorar": "رابط الحديث الصحيح في موقع الدرر",
"usulHadithDorar": "رابط أصول الحديث في موقع الدرر",
"urlToGetSimilarHadith": "رابط لكي تبحث عن الأحاديث المشابهة",
"urlToGetAlternateHadithSahih": "رابط لكي تبحث عن الحديث الصحيح",
"urlToGetUsulHadith": "رابط لكي تبحث عن أصول الحديث",
"hasSharhMetadata": "هل الحديث له شرح أم لا",
"sharhMetadata": {
"id": "رقم الشرح",
"isContainSharh": "هل يحتوى هذا الرد على شرح الحديث أم لا؟",
"urlToGetSharh": "رابط لكي تبحث عن شرح الحديث"
}
}
]
}يحضر لك أحاديث مشابهة المقابلة للـ id
شكل الرد كـ JSON
{
"metadata": {
"length": "عدد نتائج البحث",
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": [
{
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"mohdithId": "رقم المحدث",
"book": "الكتاب",
"bookId": "رقم الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"explainGrade": "توضيح درجة الصحة",
"hadithId": "رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح",
"hasSimilarHadith": "هل الحديث له أحاديث مشابهة أم لا",
"hasAlternateHadithSahih": "هل الحديث له حديث صحيح بديل أم لا",
"hasUsulHadith": "هل الحديث له أصول أم لا",
"similarHadithDorar": "رابط الأحاديث المشابهة في موقع الدرر",
"alternateHadithSahihDorar": "رابط الحديث الصحيح في موقع الدرر",
"usulHadithDorar": "رابط أصول الحديث في موقع الدرر",
"urlToGetSimilarHadith": "رابط لكي تبحث عن الأحاديث المشابهة",
"urlToGetAlternateHadithSahih": "رابط لكي تبحث عن الحديث الصحيح",
"urlToGetUsulHadith": "رابط لكي تبحث عن أصول الحديث",
"hasSharhMetadata": "هل الحديث له شرح أم لا",
"sharhMetadata": {
"id": "رقم الشرح",
"isContainSharh": "هل يحتوى هذا الرد على شرح الحديث أم لا؟",
"urlToGetSharh": "رابط لكي تبحث عن شرح الحديث"
}
}
]
}يحضر لك الحديث المقابل للـ id
شكل الرد كـ JSON
{
"metadata": {
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": {
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"mohdithId": "رقم المحدث",
"book": "الكتاب",
"bookId": "رقم الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"explainGrade": "توضيح درجة الصحة",
"hadithId": "رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح",
"hasSimilarHadith": "هل الحديث له أحاديث مشابهة أم لا",
"hasAlternateHadithSahih": "هل الحديث له حديث صحيح بديل أم لا",
"hasUsulHadith": "هل الحديث له أصول أم لا",
"similarHadithDorar": "رابط الأحاديث المشابهة في موقع الدرر",
"alternateHadithSahihDorar": "رابط الحديث الصحيح في موقع الدرر",
"usulHadithDorar": "رابط أصول الحديث في موقع الدرر",
"urlToGetSimilarHadith": "رابط لكي تبحث عن الأحاديث المشابهة",
"urlToGetAlternateHadithSahih": "رابط لكي تبحث عن الحديث الصحيح",
"urlToGetUsulHadith": "رابط لكي تبحث عن أصول الحديث",
"hasSharhMetadata": "هل الحديث له شرح أم لا",
"sharhMetadata": {
"id": "رقم الشرح",
"isContainSharh": "هل يحتوى هذا الرد على شرح الحديث أم لا؟",
"urlToGetSharh": "رابط لكي تبحث عن شرح الحديث"
}
}
}يحضر لك الحديث الصحيح المقابل للـ id
شكل الرد كـ JSON
{
"metadata": {
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": {
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"mohdithId": "رقم المحدث",
"book": "الكتاب",
"bookId": "رقم الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"hadithId": "رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح",
"hasSimilarHadith": "هل الحديث له أحاديث مشابهة أم لا",
"hasAlternateHadithSahih": "هل الحديث له حديث صحيح بديل أم لا",
"similarHadithDorar": "رابط الأحاديث المشابهة في موقع الدرر",
"urlToGetSimilarHadith": "رابط لكي تبحث عن الأحاديث المشابهة",
"hasSharhMetadata": "هل الحديث له شرح أم لا",
"sharhMetadata": {
"id": "رقم الشرح",
"isContainSharh": "هل يحتوى هذا الرد على شرح الحديث أم لا؟",
"urlToGetSharh": "رابط لكي تبحث عن شرح الحديث"
}
}
}يحضر لك أصول الحديث وطرق إخراجه للـ id المعطى
شكل الرد كـ JSON
{
"metadata": {
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": {
"hadith": "الحديث الأساسي",
"rawi": "الراوي",
"mohdith": "المحدث",
"mohdithId": "رقم المحدث",
"book": "الكتاب",
"bookId": "رقم الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"explainGrade": "توضيح درجة الصحة",
"hadithId": "رقم الحديث",
"hasSimilarHadith": "هل الحديث له أحاديث مشابهة أم لا",
"hasAlternateHadithSahih": "هل الحديث له حديث صحيح بديل أم لا",
"hasUsulHadith": "هل الحديث له أصول أم لا",
"usulHadith": {
"sources": [
{
"source": "مصدر الحديث مع الصفحة",
"chain": "سلسلة الرواة",
"hadithText": "نص الحديث"
}
],
"count": "عدد المصادر"
}
}
}للبحث عن شرح لحديث واحد عن طريق الـ id
شكل الرد كـ JSON
{
"metadata": {
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": {
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"book": "الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"takhrij": "تخريج الحديث في كتب أخرى",
"hasSharhMetadata": "هل الحديث له شرح أم لا",
"sharhMetadata": {
"id": "رقم الشرح",
"isContainSharh": "هل يحتوى هذا الرد على شرح الحديث أم لا؟",
"urlToGetSharh": "رابط لكي تبحث عن شرح الحديث",
"sharh": "شرح الحديث"
}
}
}للبحث عن شرح لحديث واحد عن طريقة النص المعطى
شكل الرد كـ JSON
{
"metadata": {
"specialist": "نوع الاحاديث هل هي للمتخصصين أم لا",
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": {
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"book": "الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"takhrij": "تخريج الحديث في كتب أخرى",
"hasSharhMetadata": "هل الحديث له شرح أم لا",
"sharhMetadata": {
"id": "رقم الشرح",
"isContainSharh": "هل يحتوى هذا الرد على شرح الحديث أم لا؟",
"urlToGetSharh": "رابط لكي تبحث عن شرح الحديث",
"sharh": "شرح الحديث"
}
}
}للبحث عن شرح للأحاديث يعطي 30 نتيجة
شكل الرد كـ JSON
{
"metadata": {
"length": "عدد نتائج البحث",
"page": "رقم الصفحة",
"removeHTML": "هل عناصر الـ HTML ممسوحة أم لا",
"specialist": "نوع الاحاديث هل هي للمتخصصين أم لا",
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": [
{
"hadith": "الحديث",
"rawi": "الراوي",
"mohdith": "المحدث",
"book": "الكتاب",
"numberOrPage": "رقم الحديث او الصفحة",
"grade": "درجة الصحة",
"takhrij": "تخريج الحديث في كتب أخرى",
"hasSharhMetadata": "هل الحديث له شرح أم لا",
"sharhMetadata": {
"id": "رقم الشرح",
"isContainSharh": "هل يحتوى هذا الرد على شرح الحديث أم لا؟",
"urlToGetSharh": "رابط لكي تبحث عن شرح الحديث",
"sharh": "شرح الحديث"
}
}
]
}للبحث عن معلومات عن المحدث عن طريق الـ id
شكل الرد كـ JSON
{
"metadata": {
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": {
"name": "المحدث",
"mohdithId": "رقم المحدث",
"info": "معلومات عن المحدث"
}
}للبحث عن معلومات عن الكتاب عن طريق الـ id
شكل الرد كـ JSON
{
"metadata": {
"isCached": "هل هذه النتائج من الـ cache أم لا"
},
"data": {
"name": "الكتاب",
"bookId": "رقم الكتاب",
"author": "المؤلف",
"reviewer": "المراجع",
"publisher": "دار النشر",
"edition": "رقم الطبعة",
"editionYear": "سنة الطبعة"
}
}عناصر الـ query التي يمكنك استخدامها
مع شرح تفصيلي أسفل الجدول
| key | الوصف |
|---|---|
value |
وهي محتوى نص الحديث المراد البحث عنه |
page |
لتحديد الصفحة التي تريدها |
removehtml |
حذف عناصر الـ HTML في الحديث |
specialist |
تستخدم لتحدد نوع الاحاديث هل هي للمتخصصين أم لا |
xclude |
كلمة أو جملة تريد استبعادها من البحث |
st |
تحدد طريقة البحث |
t |
تحديد نطاق البحث |
d[] |
تحديد درجة الحديث سواء صحيح ام ضعيف |
m[] |
تحديد اسماء المحدثين التي تريدهم |
s[] |
تحديد الكتب التي تريد البحث فيها |
rawi[] |
تحديد اسماء الرواة التي تريدهم |
- هذه الاقواس
[]تفيد ان هذا العنصر يقبل اكثر من اختيار
- محتوى نص الحديث المراد البحث عنه
- مثال:
/v1/api/hadith/search?value=جملة البحث
هكذا سيبحث بناءًا على جملة البحث
- لتحديد الصفحة التي تريدها
- مثال:
/v1/api/hadith/search?value=جملة البحث&page=1
هكذا سيبحث في نتائج البحث للصفحة الثالثة أي المجموعة الثالثة لنتائج البحث - القيمة الافتراضية ستكون الصفحة رقم واحد
page=1
- حذف عناصر الـ
HTMLفي الحديث
مثل<span class="search-keys">...</span> - مثال:
/v1/api/hadith/search?value=جملة البحث&removehtml=true
هكذا سيمسح عناصر الـHTMLمن نتائج البحث - القيمة الافتراضي هي
true
- تستخدم لتحدد نوع الاحاديث هل هي للمتخصصين أم لا
- قيمها هي
trueللمتخصصين وfalseلغير المتخصصين - مثال:
/v1/api/hadith/search?value=جملة البحث&specialist=true
سيعطيك أحاديث أكثر ومختلفة خاصة للمتخصصين
وتكون بها معلومة اضافية مثل تخريج الأحاديث في الكتب الأخرى - القيمة الافتراضية هي
false
- كلمة أو جملة تريد استبعادها من البحث مثال
- مثال:
/v1/api/hadith/search?value=جملة البحث&xclude=اليهود
هكذا سيستبعد كلمةاليهودمن البحث
- تحدد طريقة البحث بثلاثة خيارات فقط
- هذه الطرق هي:
جميع الكلمات،أي كلمة،بحث مطابق - قيمها هي:
w,a,p
للبحث بـجميع الكلماتفستكونst=w
للبحث بـأي كلمةفستكونst=a
للبحث بـبحث مطابقفستكونst=p - مثال:
/v1/api/hadith/search?value=جملة البحث&st=p
هكذا سيبحث بشكل مطابق لجملة البحث
كل القيم وطرق البحث التي تمثلها
أو يمكنك الحصول عليها كملف JSON من هنا
- تحديد نطاق البحث
- هذه النطاقات هي:
جميع الأحاديث،الأحاديث المرفوعة،الأحاديث القدسية،آثار الصحابة،شروح الأحاديث - قيمها هي:
*,0,1,2,3
للبحث عنجميع الأحاديثفستكونt=*
للبحث عنالأحاديث المرفوعةفستكونt=0
للبحث عنالأحاديث القدسيةفستكونt=1
للبحث عنآثار الصحابةفستكونt=2
للبحث عنشروح الأحاديثفستكونt=3 - مثال:
/v1/api/hadith/search?value=جملة البحث&t=1
هكذا سيبحث فقط عن الأحاديث القدسية المطابق لجملة البحث
كل القيم ونطاقات البحث التي تمثلها
أو يمكنك الحصول عليها كملف JSON من هنا
- تحديد درجة الحديث سواء صحيح ام ضعيف
- قيمها هي:
0،1،2،3،4
للبحث عنجميع الدرجاتفستكونd[]=0
للبحث عنأحاديث حكم المحدثون عليها بالصحةفستكونd[]=1
للبحث عنأحاديث حكم المحدثون على أسانيدها بالصحةفستكونd[]=2
للبحث عنأحاديث حكم المحدثون عليها بالضعففستكونd[]=3
للبحث عنأحاديث حكم المحدثون على أسانيدها بالضعففستكونd[]=4 - مثال:
/v1/api/hadith/search?value=جملة البحث&d[]=3
هكذا سيبحث فقط عن الأحاديث المحكوم عليها بالضعف - يمكنك تحديد اكثر من اختيار
مثال:/v1/api/hadith/search?value=جملة البحث&d[]=1&d[]=2
هكذا سيبحث فقط عن الأحاديث المحكوم عليها بالصحة من ناحية المتن و الاسناد
كل القيم والدرجات التي تمثلها
أو يمكنك الحصول عليها كملف JSON من هنا
- تحديد اسماء المحدثين التي تريدهم
- قيمها متعددة ومنها:
0،179،204،256،261... إلخ
حيث0تمثلجميع المحدثين
و179تمثلالإمام المالك
و204تمثلالإمام الشافعي
و256تمثلالبخاري
و261تمثلمسلم - مثال:
/v1/api/hadith/search?value=جملة البحث&m[]=179
هكذا سيبحث فقط عن الأحاديث التي حدث بها الإمام مالك - يمكنك تحديد اكثر من اختيار
مثال:/v1/api/hadith/search?value=جملة البحث&m[]=256&m[]=261
هكذا سيبحث فقط عن الأحاديث التي حدثا بها بخاري ومسلم
كل القيم وأسماء المحدثين التي تمثلها
أو يمكنك الحصول عليها كملف JSON من هنا
- تحديد الكتب التي تريد البحث فيها
- قيمها متعددة ومنها:
0،13457،6216،3088،96... إلخ
حيث0تمثلجميع المحدثينو13457تمثلالأربعون النووية
و6216تمثلصحيح البخاري
و3088تمثلصحيح مسلم
و96تمثلالصحيح المسند - مثال:
/v1/api/hadith/search?value=جملة البحث&s[]=96
هكذا سيبحث فقط عن الأحاديث الواردة في كتاب الصحيح المسند - يمكنك تحديد اكثر من اختيار
مثال:/v1/api/hadith/search?value=جملة البحث&s[]=6216&s[]=13457
هكذا سيبحث فقط عن الأحاديث التي وردت في كتابي الأربعون النووية وكتاب صحيح البخاري
كل القيم وأسماء الكتب التي تمثلها
أو يمكنك الحصول عليها كملف JSON من هنا
- تحديد اسماء الرواة التي تريدهم
- قيمها متعددة ومنها:
0،1819،8918،2664... إلخ
حيث0تمثلجميع الرواة
حيث1819تمثلأسماء بنت أبي بكر
و8918تمثلعمر بن الخطاب
و2664تمثلابن عباس - مثال:
/v1/api/hadith/search?value=جملة البحث&rawi[]=1819
هكذا سيبحث فقط عن الأحاديث التي رواتها أسماء بنت أبي بكر - يمكنك تحديد اكثر من اختيار
مثال:/v1/api/hadith/search?value=جملة البحث&rawi[]=8918&rawi[]=2664
هكذا سيبحث فقط عن الأحاديث التي رواها عمر بن الخطاب وابن عباس - هنا قيم ترمز لأكثر من شخص في آن واحد
مثل2665ترمز لـابن عباس أو أبو هريرة
و8924ترمز لـعمر بن الخطاب وأبو هريرة
و264ترمز لـأبو الدرداء وأبو أمامة وعبدالله بن عمر وابن عباس وجابر بن عبدالله
كل القيم وأسماء الرواة التي تمثلها
أو يمكنك الحصول عليها كملف JSON من هنا
كل البيانات المتاحة والقيم التي تمثلها يمكنكم الحصول عليه من هذه الـ endpoints
[
{
"endpoint": "/v1/data/book",
"description": "احضار كل الكتب المتاحة",
"abstractResponse": [
{
"key": "الكلمة المفتاحية",
"value": "القيمة"
}
]
},
{
"endpoint": "/v1/data/degree",
"description": "احضار كل درجات الحديث المتاحة",
"abstractResponse": [
{
"key": "الكلمة المفتاحية",
"value": "القيمة"
}
]
},
{
"endpoint": "/v1/data/methodSearch",
"description": "احضار كل طرق البحث المتاحة",
"abstractResponse": [
{
"key": "الكلمة المفتاحية",
"value": "القيمة"
}
]
},
{
"endpoint": "/v1/data/mohdith",
"description": "احضار كل المحدثين المتاحين",
"abstractResponse": [
{
"key": "الكلمة المفتاحية",
"value": "القيمة"
}
]
},
{
"endpoint": "/v1/data/rawi",
"description": "احضار كل الرواة المتاحين",
"abstractResponse": [
{
"key": "الكلمة المفتاحية",
"value": "القيمة"
}
]
},
{
"endpoint": "/v1/data/zoneSearch",
"description": "احضار كل نطاقات البحث المتاحة",
"abstractResponse": [
{
"key": "الكلمة المفتاحية",
"value": "القيمة"
}
]
}
]افتح issue إذا قابلت مشكلة ما او لديك اقتراح
بالطبع نرحب بأي مساهمة لدينا ❤