神の平安、祝福、慈悲があなたの上にありますように
少し前に、デンタルパールAPI
使用してみました
しかし、 API
JSONP のみを処理し、CORS のせいで通常の方法では処理できないなど、いくつかの困難に直面しました。
JSONP を使用してCORS
回避することに成功するとJSONP
HTML
形式で出力が得られます。また、このAPI
の詳細とその対処方法を説明するdocumentation
やドキュメントはありません。
CORS
問題を回避し、 API
とその使用方法の詳細な説明とともにJSON
形式でデータを提供する中間API
を作成することにしました。
公式API
にはないいくつかの追加機能が含まれていることに加えて、
5
秒間cache
れますIP
ごとに 1 日あたり100
検索config.js ファイルから編集できます。
fork
またはclone
dependencies
をインストールするnpm install
API
実行するnpm start
API
次のリンクから入手できます。 http://localhost:5000
localhost
で使用するか、独自のホスティングまたはサーバーにアップロードしますリンク: 郵便配達員
Postman
を使用してAPI
の操作方法を学び、例を参照してください。collection
fork
必要に応じて使用しますenvironment
dev
変数{{url}}
のリンクを変更できますport
インタラクティブな API ドキュメントを表示するには:
サーバーを実行します。
npm run dev
ブラウザを開いて、次の場所に移動します。
http://localhost:5000/api-docs
ここには、利用可能なすべてのエンドポイントを探索し、ブラウザから直接 API をテストできる Swagger UI があります。
API
一連のendpoint
が含まれています
endpoint
が/api
で始まる場合、公式の Durar Al-Suniya API
を検索します。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" : " شرح الحديث "
}
}
}
指定されたテキストの方法に基づいて 1 つのハディースの説明を検索する
応答を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" : " القيمة "
}
]
}
]
問題が発生した場合や提案がある場合は、問題をオープンしてください
もちろん、私たちの貢献は大歓迎です❤