Мир, благословение и милость Божия пребудут с вами
Некоторое время назад я пытался использовать 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
API
npm start
API
будет доступен по следующей ссылке. http://localhost:5000
localhost
по своему усмотрению или загрузите на свой хостинг или сервер. Ссылка: Почтальон
Postman
, чтобы узнать, как работать с API
, и посмотреть примеры.fork
collection
, чтобы использовать ее по своему усмотрению.environment
на dev
и вы можете изменить ссылку на переменную {{url}}
если вы ее меняли или меняли port
Чтобы просмотреть интерактивную документацию API:
Запустите сервер:
npm run dev
Откройте браузер и перейдите по адресу:
http://localhost:5000/api-docs
Здесь вы найдете пользовательский интерфейс Swagger, который позволяет вам исследовать все доступные конечные точки и тестировать API прямо из браузера.
API
содержит набор endpoint
endpoint
начинается с /api
, она выполняет поиск через официальный API
Durar Al-Suniya.endpoint
начинается с /site
, именно так она и ищется на странице поиска Durar Al-Sunniyya. Поиск хадисов дает 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" : " هل الحديث له حديث صحيح بديل أم لا " ,
"similarHadithDorar" : " رابط الأحاديث المشابهة في موقع الدرر " ,
"alternateHadithSahihDorar" : " رابط الحديث الصحيح في موقع الدرر " ,
"urlToGetSimilarHadith" : " رابط لكي تبحث عن الأحاديث المشابهة " ,
"urlToGetAlternateHadithSahih" : " رابط لكي تبحث عن الحديث الصحيح " ,
"hasSharhMetadata" : " هل الحديث له شرح أم لا " ,
"sharhMetadata" : {
"id" : " رقم الشرح " ,
"isContainSharh" : " هل يحتوى هذا الرد على شرح الحديث أم لا؟ " ,
"urlToGetSharh" : " رابط لكي تبحث عن شرح الحديث "
}
}
]
}
Он приносит вам похожие разговоры, соответствующие id
Отформатируйте ответ как 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" : " رابط لكي تبحث عن شرح الحديث "
}
}
]
}
Он приносит вам разговор, соответствующий id
Отформатируйте ответ как 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" : " رابط لكي تبحث عن شرح الحديث "
}
}
}
Он дает вам правильный хадис, соответствующий 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" : " المحدث " ,
"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
, которые вы можете использовать
С подробным объяснением под таблицей
ключ. | Описание |
---|---|
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" : " القيمة "
}
]
}
]
Откройте проблему, если столкнулись с проблемой или у вас есть предложение.
Конечно, мы приветствуем любой наш вклад ❤