Que la paix, les bénédictions et la miséricorde de Dieu soient sur vous
Il y a quelque temps, j'ai essayé d'utiliser l' API
des perles dentaires
Mais j'ai rencontré quelques difficultés, notamment le fait que l' API
ne traite que JSONP et que vous ne pourrez pas le gérer de manière normale à cause de CORS.
Si vous réussissez à éviter CORS
en utilisant JSONP
vous obtiendrez le résultat au format HTML
. De plus, il n'existe aucune documentation
ou document expliquant les détails de cette API
et comment la gérer.
J'ai décidé de créer une API
intermédiaire qui évite le problème CORS
et vous donne les données au format JSON
ainsi qu'une explication détaillée de l' API
et comment l'utiliser.
En plus de contenir quelques fonctionnalités supplémentaires que l'on ne retrouve pas dans l' API
officielle
cache
pendant 5
secondes100
recherches par jour et par IP
Vous pouvez les modifier depuis le fichier config.js
fork
ou clone
ce projetdependencies
npm install
API
npm start
API
sera disponible sur le lien suivant http://localhost:5000
localhost
comme vous le souhaitez, ou téléchargez-le sur votre propre hébergement ou serveur Lien : Facteur
Postman
pour apprendre à utiliser l' API
et voir des exemplesfork
la collection
pour l'utiliser comme vous le souhaitezenvironment
en dev
et vous pouvez changer le lien vers la variable {{url}}
si vous l'avez modifié ou changé le port
Pour afficher la documentation interactive de l'API :
Exécutez le serveur :
npm run dev
Ouvrez votre navigateur et accédez à :
http://localhost:5000/api-docs
Vous trouverez ici l'interface utilisateur Swagger qui vous permet d'explorer tous les points de terminaison disponibles et de tester l'API directement depuis le navigateur.
L' API
contient un ensemble de endpoint
endpoint
commence par /api
, il effectue une recherche via l' API
officielle Durar Al-Suniya.endpoint
commence par /site
, voici comment il est recherché via la page de recherche Durar Al-Sunniyya La recherche de hadiths donne 15
résultats
Formatez la réponse en JSON
{
"metadata" : {
"length" : " عدد نتائج البحث " ,
"page" : " رقم الصفحة " ,
"removeHTML" : " هل عناصر الـ HTML ممسوحة أم لا " ,
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : [
{
"hadith" : " الحديث " ,
"rawi" : " الراوي " ,
"mohdith" : " المحدث " ,
"book" : " الكتاب " ,
"numberOrPage" : " رقم الحديث او الصفحة " ,
"grade" : " درجة الصحة "
}
]
}
La recherche de hadiths donne 30
résultats
Formatez la réponse en 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" : " هل الحديث له حديث صحيح بديل أم لا " ,
"similarHadithDorar" : " رابط الأحاديث المشابهة في موقع الدرر " ,
"alternateHadithSahihDorar" : " رابط الحديث الصحيح في موقع الدرر " ,
"urlToGetSimilarHadith" : " رابط لكي تبحث عن الأحاديث المشابهة " ,
"urlToGetAlternateHadithSahih" : " رابط لكي تبحث عن الحديث الصحيح " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث "
}
}
]
}
Il vous apporte des conversations similaires correspondant à l' id
Formatez la réponse en JSON
{
"metadata" : {
"length" : " عدد نتائج البحث " ,
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : [
{
"hadith" : " الحديث " ,
"rawi" : " الراوي " ,
"mohdith" : " المحدث " ,
"mohdithId" : " رقم المحدث " ,
"book" : " الكتاب " ,
"bookId" : " رقم الكتاب " ,
"numberOrPage" : " رقم الحديث او الصفحة " ,
"grade" : " درجة الصحة " ,
"explainGrade" : " توضيح درجة الصحة " ,
"hadithId" : " رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح " ,
"hasSimilarHadith" : " هل الحديث له أحاديث مشابهة أم لا " ,
"hasAlternateHadithSahih" : " هل الحديث له حديث صحيح بديل أم لا " ,
"similarHadithDorar" : " رابط الأحاديث المشابهة في موقع الدرر " ,
"alternateHadithSahihDorar" : " رابط الحديث الصحيح في موقع الدرر " ,
"urlToGetSimilarHadith" : " رابط لكي تبحث عن الأحاديث المشابهة " ,
"urlToGetAlternateHadithSahih" : " رابط لكي تبحث عن الحديث الصحيح " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث "
}
}
]
}
Il vous apporte le hadith correspondant à l' id
Formatez la réponse en JSON
{
"metadata" : {
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : {
"hadith" : " الحديث " ,
"rawi" : " الراوي " ,
"mohdith" : " المحدث " ,
"mohdithId" : " رقم المحدث " ,
"book" : " الكتاب " ,
"bookId" : " رقم الكتاب " ,
"numberOrPage" : " رقم الحديث او الصفحة " ,
"grade" : " درجة الصحة " ,
"explainGrade" : " توضيح درجة الصحة " ,
"hadithId" : " رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح " ,
"hasSimilarHadith" : " هل الحديث له أحاديث مشابهة أم لا " ,
"hasAlternateHadithSahih" : " هل الحديث له حديث صحيح بديل أم لا " ,
"similarHadithDorar" : " رابط الأحاديث المشابهة في موقع الدرر " ,
"alternateHadithSahihDorar" : " رابط الحديث الصحيح في موقع الدرر " ,
"urlToGetSimilarHadith" : " رابط لكي تبحث عن الأحاديث المشابهة " ,
"urlToGetAlternateHadithSahih" : " رابط لكي تبحث عن الحديث الصحيح " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث "
}
}
}
Il vous apporte le bon hadith correspondant à l' id
Formatez la réponse en JSON
{
"metadata" : {
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : {
"hadith" : " الحديث " ,
"rawi" : " الراوي " ,
"mohdith" : " المحدث " ,
"mohdithId" : " رقم المحدث " ,
"book" : " الكتاب " ,
"bookId" : " رقم الكتاب " ,
"numberOrPage" : " رقم الحديث او الصفحة " ,
"grade" : " درجة الصحة " ,
"hadithId" : " رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح " ,
"hasSimilarHadith" : " هل الحديث له أحاديث مشابهة أم لا " ,
"hasAlternateHadithSahih" : " هل الحديث له حديث صحيح بديل أم لا " ,
"similarHadithDorar" : " رابط الأحاديث المشابهة في موقع الدرر " ,
"urlToGetSimilarHadith" : " رابط لكي تبحث عن الأحاديث المشابهة " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث "
}
}
}
Pour rechercher une explication d'un seul hadith à l'aide id
Formatez la réponse en JSON
{
"metadata" : {
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : {
"hadith" : " الحديث " ,
"rawi" : " الراوي " ,
"mohdith" : " المحدث " ,
"book" : " الكتاب " ,
"numberOrPage" : " رقم الحديث او الصفحة " ,
"grade" : " درجة الصحة " ,
"takhrij" : " تخريج الحديث في كتب أخرى " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث " ,
"sharh" : " شرح الحديث "
}
}
}
Rechercher une explication d’un hadith en se basant sur la méthode du texte donné
Formatez la réponse en JSON
{
"metadata" : {
"specialist" : " نوع الاحاديث هل هي للمتخصصين أم لا " ,
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : {
"hadith" : " الحديث " ,
"rawi" : " الراوي " ,
"mohdith" : " المحدث " ,
"book" : " الكتاب " ,
"numberOrPage" : " رقم الحديث او الصفحة " ,
"grade" : " درجة الصحة " ,
"takhrij" : " تخريج الحديث في كتب أخرى " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث " ,
"sharh" : " شرح الحديث "
}
}
}
La recherche d'une explication des hadiths donne 30
résultats
Formatez la réponse en JSON
{
"metadata" : {
"length" : " عدد نتائج البحث " ,
"page" : " رقم الصفحة " ,
"removeHTML" : " هل عناصر الـ HTML ممسوحة أم لا " ,
"specialist" : " نوع الاحاديث هل هي للمتخصصين أم لا " ,
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : [
{
"hadith" : " الحديث " ,
"rawi" : " الراوي " ,
"mohdith" : " المحدث " ,
"book" : " الكتاب " ,
"numberOrPage" : " رقم الحديث او الصفحة " ,
"grade" : " درجة الصحة " ,
"takhrij" : " تخريج الحديث في كتب أخرى " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث " ,
"sharh" : " شرح الحديث "
}
}
]
}
Pour rechercher des informations sur l’orateur à l’aide de l’ id
Formatez la réponse en JSON
{
"metadata" : {
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : {
"name" : " المحدث " ,
"mohdithId" : " رقم المحدث " ,
"info" : " معلومات عن المحدث "
}
}
Pour rechercher des informations sur le livre à l'aide de l' id
Formatez la réponse en JSON
{
"metadata" : {
"isCached" : " هل هذه النتائج من الـ cache أم لا "
},
"data" : {
"name" : " الكتاب " ,
"bookId" : " رقم الكتاب " ,
"author" : " المؤلف " ,
"reviewer" : " المراجع " ,
"publisher" : " دار النشر " ,
"edition" : " رقم الطبعة " ,
"editionYear" : " سنة الطبعة "
}
}
Éléments query
que vous pouvez utiliser
Avec une explication détaillée sous le tableau
clé. | Description |
---|---|
value | C'est le contenu du texte du hadith que vous souhaitez rechercher |
page | Pour sélectionner la page souhaitée |
removehtml | Supprimer les éléments HTML dans le discours |
specialist | Il permet de déterminer le type de hadiths, s'ils sont destinés à des spécialistes ou non. |
xclude | Un mot ou une expression que vous souhaitez exclure de la recherche |
st | Déterminer la méthode de recherche |
t | Définir la portée de la recherche |
d[] | Déterminer le degré du hadith, s'il est authentique ou faible |
m[] | Spécifiez les noms des mises à jour souhaitées |
s[] | Sélectionnez les livres que vous souhaitez rechercher |
rawi[] | Précisez les noms des narrateurs souhaités |
[]
indiquent que cet élément accepte plus d'une option /v1/api/hadith/search?value=جملة البحث
/v1/api/hadith/search?value=جملة البحث&page=1
page=1
HTML
dans le discours<span class="search-keys">...</span>
/v1/api/hadith/search?value=جملة البحث&removehtml=true
HTML
des résultats de recherchetrue
true
pour les spécialistes et false
pour les non-spécialistes/v1/api/hadith/search?value=جملة البحث&specialist=true
false
/v1/api/hadith/search?value=جملة البحث&xclude=اليهود
اليهود
sera exclu de la recherche جميع الكلمات
, أي كلمة
, بحث مطابق
w
, a
, p
جميع الكلمات
st=w
أي كلمة
ce sera st=a
بحث مطابق
st=p
/v1/api/hadith/search?value=جملة البحث&st=p
Toutes les valeurs et méthodes de recherche qu’ils représentent
Ou vous pouvez l'obtenir sous forme de fichier JSON
à partir d'ici
جميع الأحاديث
, الأحاديث المرفوعة
, الأحاديث القدسية
, آثار الصحابة
, شروح الأحاديث
*
, 0
, 1
, 2
, 3
جميع الأحاديث
ce sera t=*
الأحاديث المرفوعة
, t=0
الأحاديث القدسية
t=1
آثار الصحابة
t=2
شروح الأحاديث
, t=3
/v1/api/hadith/search?value=جملة البحث&t=1
Toutes les valeurs et les plages de recherche qu'elles représentent
Ou vous pouvez l'obtenir sous forme de fichier JSON
à partir d'ici
0
, 1
, 2
, 3
, 4
جميع الدرجات
d[]=0
أحاديث حكم المحدثون عليها بالصحة
ce sera d[]=1
أحاديث حكم المحدثون على أسانيدها بالصحة
ce sera d[]=2
أحاديث حكم المحدثون عليها بالضعف
ce sera d[]=3
أحاديث حكم المحدثون على أسانيدها بالضعف
ce sera d[]=4
/v1/api/hadith/search?value=جملة البحث&d[]=3
/v1/api/hadith/search?value=جملة البحث&d[]=1&d[]=2
Toutes les valeurs et degrés qu'ils représentent
Ou vous pouvez l'obtenir sous forme de fichier JSON
à partir d'ici
0
, 179
, 204
, 256
, 261
...etc.0
représente جميع المحدثين
179
représente الإمام المالك
204
représente الإمام الشافعي
256
représente البخاري
261
représente مسلم
/v1/api/hadith/search?value=جملة البحث&m[]=179
/v1/api/hadith/search?value=جملة البحث&m[]=256&m[]=261
Toutes les valeurs et les noms des intervenants qu'ils représentent
Ou vous pouvez l'obtenir sous forme de fichier JSON
à partir d'ici
0
, 13457
, 6216
, 3088
, 96
...etc.0
représente جميع المحدثين
et 13457
représente الأربعون النووية
6216
représente صحيح البخاري
3088
représente صحيح مسلم
96
représente الصحيح المسند
/v1/api/hadith/search?value=جملة البحث&s[]=96
/v1/api/hadith/search?value=جملة البحث&s[]=6216&s[]=13457
Toutes les valeurs et les noms des livres qu'elles représentent
Ou vous pouvez l'obtenir sous forme de fichier JSON
à partir d'ici
0
, 1819
, 8918
, 2664
...etc.0
représente جميع الرواة
1819
représente أسماء بنت أبي بكر
8918
représente عمر بن الخطاب
2664
représente ابن عباس
/v1/api/hadith/search?value=جملة البحث&rawi[]=1819
/v1/api/hadith/search?value=جملة البحث&rawi[]=8918&rawi[]=2664
2665
symbolise ابن عباس أو أبو هريرة
8924
symbolise عمر بن الخطاب وأبو هريرة
264
symbolise أبو الدرداء وأبو أمامة وعبدالله بن عمر وابن عباس وجابر بن عبدالله
Toutes les valeurs et les noms des narrateurs qui les représentent
Ou vous pouvez l'obtenir sous forme de fichier JSON
à partir d'ici
Toutes les données disponibles et les valeurs qu'elles représentent peuvent être obtenues à partir de ces 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" : " القيمة "
}
]
}
]
Ouvrez un ticket si vous rencontrez un problème ou avez une suggestion
Bien sûr, nous apprécions chacune de nos contributions ❤