1. اكتشف العقد
curl -sS \
'https://healthrenewal.org/api/v1'واجهة عامة ومؤسسية قابلة للتكامل للوصول المنظم إلى المعرفة المنشورة، سجل المصادر، البحث، المزامنة، والخدمات البحثية. العقد الحالي هو Rawafid Public & Partner API v1.2.0 على مسار إنتاج ثابت.
Production base URL: https://healthrenewal.org/api/v1
Machine-readable contract: https://healthrenewal.org/api/openapi.json
جميع الأمثلة التالية هي طلبات قراءة. لا ترسل بيانات حساسة في query string، ولا تضع مفاتيح الشركاء في كود عميل عام أو تطبيق متصفح يمكن فحصه.
curl -sS \
'https://healthrenewal.org/api/v1'curl -sS \
'https://healthrenewal.org/api/v1/content?limit=5'curl -sS \
'https://healthrenewal.org/api/v1/search?q=autism&limit=5'curl -sS \
'https://healthrenewal.org/api/v1/evidence-discovery?q=autism&providers=europe_pmc,crossref,datacite&limit=5'const response = await fetch(
'https://healthrenewal.org/api/v1/content?limit=5',
{ headers: { Accept: 'application/json' } }
);
if (!response.ok) throw new Error(`Rawafid API: ${response.status}`);
const payload = await response.json();
console.log(payload.data, payload.pagination);/api/v1 هو المسار المستقر الحالي، والإصدار الدلالي داخل الاستجابات والعقد هو 1.2.0. لا تُعرض المسودات ولا المواد غير القابلة للفهرسة في واجهة المحتوى العامة.
العقد الآلي منشور بصيغة OpenAPI 3.1.0 مع JSON Schema 2020-12. الاحتفاظ بسلسلة 3.1 هنا قرار توافق tooling، وليس ادعاء بأنها أحدث نسخة منشورة من مواصفة OpenAPI.
العقد العام يعامل v1 كواجهة مستقرة. أي تغيير يكسر أسماء الحقول أو دلالتها أو سلوك pagination يجب ألا يُدفع بصمت داخل التكاملات القائمة؛ التغييرات الإضافية غير الكاسرة يمكن أن تظهر داخل v1.
لا تحتاج إلى SDK خاص. HTTP + JSON + OpenAPI هي نقطة التكامل الرسمية، ويمكن توليد عميل باستخدام tooling متوافق مع OpenAPI عند الحاجة.
/api/v1
وصف آلي للإصدار، الموارد، OpenAPI والخلاصات.
/api/v1/content
قائمة المحتوى العام المنشور والقابل للفهرسة مع Cursor Pagination.
/api/v1/content/{slug}
تفاصيل مادة واحدة، بما فيها النص والمراجع وملف الحقوق.
/api/v1/content/{slug}/sources
المصادر المطبّعة المرتبطة بمادة عامة.
/api/v1/search
بحث مرتب في المحتوى العام، مع حد أعلى مختلف للمجهول والشريك.
/api/v1/sources
سجل المصادر العام مع publisher/type/q وOffset Pagination.
/api/v1/sources/{id}
المعرفات والعلاقات وORCID/ROR والحقوق وإثبات منشأ الترجمة.
/api/v1/evidence-discovery
Europe PMC وCrossref وDataCite افتراضيًا؛ Lens اختيار صريح.
/api/v1/lens
عقد آلي لحالة تكامل Lens والحصص والإسناد والخصوصية.
/api/v1/changes
مزامنة تفاضلية lossless باستخدام since ثم composite cursor.
/api/v1/stats
إحصاءات عامة لكتالوج API.
/api/v1/{resource}
articles، guides، research، conditions، tools وغيرها.
المجموعات المسماة تشمل: articles، guides، research، conditions، comparisons، tools، courses، learning-paths، resources، protocols، interventions، assessments، glossary، pages، sectors، categories وtags.
القراءة العامة لا تتطلب مفتاحًا. عند وجود تكامل مؤسسي يمكن إرسال مفتاح اختياري عبر X-API-Key أو Authorization: Bearer …. المفتاح يظهر مرة واحدة عند الإصدار، ولا يخزن في قاعدة البيانات بنصه الخام؛ يخزن SHA-256 فقط.
content:readقراءة المحتوى والمجموعات العامة.
sources:readقراءة سجل المصادر والتفاصيل.
search:readالبحث واكتشاف الأدلة.
changes:readمزامنة التغييرات.
stats:readقراءة الإحصاءات العامة.
curl -sS \
-H 'X-API-Key: rawafid_live_REDACTED' \
'https://healthrenewal.org/api/v1/content?limit=25'الحصة الافتراضية للشريك الجديد في البنية الحالية هي 120 طلبًا/دقيقة و25,000 طلب/يوم، لكنها قابلة للتخصيص لكل شريك. اعتبر رؤوس الاستجابة هي المصدر التشغيلي النهائي: X-RateLimit-Minute-Limit، X-RateLimit-Minute-Remaining، X-RateLimit-Day-Limit، X-RateLimit-Day-Remaining. عند التجاوز يعود 429 وRetry-After.
قاعدة أمنية: مفتاح Partner API سر مؤسسي؛ لا تضعه في JavaScript عام، تطبيق ويب مكشوف، مستودع، سجل analytics أو URL.
استخدم pagination.next_cursor. المؤشر opaque ومركب من ترتيب النشر والمعرف؛ لا تحاول تحليله أو إنشاؤه بنفسك.
/sources يستخدم limit + offset ويعيد next_offset. لا تخلط هذا النموذج مع cursor الخاص بالمحتوى.
ابدأ بـsince=ISO_DATE. إذا كان has_more=true احتفظ بقيمة since نفسها ومرر next_cursor في الصفحة التالية. المؤشر مركب من occurred_at + id حتى لا تضيع أحداث تتشارك التوقيت نفسه.
لكل مزود cursor مستقل: europe_pmc_cursor وcrossref_cursor وdatacite_cursor. الاسم cursor محفوظ فقط كـalias قديم لـEurope PMC.
# First change-stream page
curl -sS 'https://healthrenewal.org/api/v1/changes?since=2026-09-01T00:00:00Z&limit=100'
# Subsequent page: keep since and pass the opaque next_cursor
curl -sS 'https://healthrenewal.org/api/v1/changes?since=2026-09-01T00:00:00Z&limit=100&cursor=NEXT_CURSOR'GET /api/v1/content يعرض فقط المحتوى الذي حالته published وقابل للفهرسة ووقت نشره قد حل. تفاصيل المادة تضيف النص المنظم/النصي، المراجع وملف الحقوق.
GET /api/v1/sources و/sources/{id} يوفران سجلًا عامًا للمصادر المستخدمة في مواد منشورة. التفاصيل قد تشمل related_identifiers، contributors مع ORCID، انتماءات مؤسسية مع ROR، الإصدارات، مواضع الاستشهاد، rights_profiles وtranslations.
العلاقات من روافد إلى المصدر يمكن تمثيلها آليًا بعلاقة DataCite-compatible مثل IsReferencedBy نحو الصفحة القانونية المنشورة، مع عدم اختلاق ORCID/ROR عند غياب تحقق موثوق.
GET /api/v1/evidence-discovery?q=... يستخدم افتراضيًا europe_pmc,crossref,datacite. فشل مزود واحد يُعزل ويظهر في حالة المزود بدل إسقاط بقية النتائج.
النتائج المطبّعة قد تتضمن العنوان، الملخص عند توفره، السنة، المجلة/الناشر، المؤلفين، DOI وPMID وPMCID وLens/OpenAlex عند توفرها، حالة الوصول المفتوح/السحب، الاستشهادات، وprovenance. DataCite creators/contributors وnameIdentifiers وrelatedIdentifiers تُقرأ عندما يقدمها السجل. ORCID وROR لا يُنشآن تخمينيًا.
لا يدخل Lens في المجموعة الافتراضية. لاستخدامه أرسل providers=lens أو أضفه صراحة إلى المزودات. الاعتماد LENS_SCHOLARLY_API_TOKEN يبقى server-side.
الحصة التشغيلية المطبقة على Lens هي 10 طلبات/دقيقة و20,000 طلب/شهر مع fail-closed guard مشترك بين الخوادم. كل سجل Lens يحتفظ بـLens ID ورابط السجل الأصلي، وعند عرضه يجب إظهار Data Sourced from The Lens وفق سياسة الإسناد.
التوثيق التفصيلي لتكامل Lens → · Machine-readable Lens manifest ↗
استجابات JSON العامة تنتج ETag، وبعض المسارات تضيف Last-Modified. استخدم If-None-Match أو If-Modified-Since لتحصل على 304 Not Modified عندما لا تتغير التمثيلات.
كل استجابة API تحمل X-Request-Id. احتفظ به عند الإبلاغ عن خطأ تشغيلي حتى يمكن ربط المشكلة بطلب محدد.
واجهة API تسمح GET, HEAD, OPTIONS عبر CORS، وتقبل Authorization وX-API-Key. استخدام مفتاح مؤسسي من متصفح عام غير موصى به لأن المفتاح سر.
الاستجابات تضيف X-Content-Type-Options: nosniff وReferrer-Policy: no-referrer. بيانات API نفسها تحمل X-Robots-Tag: noindex, nofollow لأنها واجهة آلة وليست صفحة بحث، بينما صفحة التوثيق هذه قابلة للفهرسة.
ETAG=$(curl -sSI 'https://healthrenewal.org/api/v1/content?limit=5' | awk -F': ' 'tolower($1)=="etag" {print $2}' | tr -d '\r')
curl -i -H "If-None-Match: $ETAG" 'https://healthrenewal.org/api/v1/content?limit=5'الأخطاء تعود JSON مع error.code وerror.message وerror.request_id، وقد يظهر error.parameter لخطأ معلمة محددة.
معلمة، تاريخ أو cursor غير صالح.
مفتاح شريك غير صالح/منتهي/ملغى عند إرساله.
المفتاح صالح لكن لا يملك scope المطلوب.
المورد العام المطلوب غير موجود.
تجاوز حصة الشريك؛ راقب Retry-After.
خدمة داخلية أو مزود مطلوب غير متاح مؤقتًا. لا تحول 503 إلى نتيجة فارغة ناجحة.
{
"error": {
"code": "invalid_parameter",
"message": "...",
"parameter": "q",
"request_id": "..."
},
"meta": { "api_version": "1.2.0" }
}الوضع المحافظ الافتراضي للمحتوى هو link_and_citation_only ما لم توجد رخصة صريحة تسمح بأكثر. وجود record في API أو availability للـmetadata لا يمنح تلقائيًا حق إعادة نشر الملخص أو النص الكامل أو الصور أو مجموعة بيانات المزود.
rights_profiles تفصل بين إتاحة metadata وحق إعادة استخدامها وبين إتاحة المحتوى وحق إعادة استخدامه. القيمة unknown تعني أن الإذن غير مثبت، لا أنها موافقة.
translations يمكن أن يسجل الحقل المترجم، لغة المصدر والهدف، طريقة الترجمة، الأداة/الإصدار عند الاستخدام الآلي، هوية المترجم والمراجع وORCID/ROR عند توفر تحقق، وحالة المراجعة. الترجمة المحلية لا تُعرض كأنها metadata أصلية بلا provenance.
/feed.xml
/magazine/feed.xml
/feed.json
الخلاصات تدعم validators وطلبات 304. إذا تعذر الوصول إلى كتالوج المحتوى الأساسي فإنها تعيد 503 مع Retry-After بدل نشر خلاصة فارغة تبدو سليمة.
واجهة المحتوى العامة لا تعيد مسودات أو مواد خارج نافذة النشر أو مواد robots_index=false.
هذه الوثائق لا تعرض API عامة للكتابة في المحتوى. عمليات الإدارة منفصلة عن العقد العام.
اكتشاف الأدلة يعزل أعطال المزودات ويعيد حالة كل مزود، مع عدم جعل Lens مزودًا افتراضيًا.
اعتمادات المزودات الخارجية ومفاتيح Partner API لا تُعرض في الاستجابات العامة أو المستودع. مفاتيح الشركاء تتحقق من digest مخزن وليس من plaintext.
لا. ابدأ بالواجهة العامة. المفتاح المؤسسي اختياري ويستخدم عندما نحتاج تعريف الشريك، scopes وحصصًا مضبوطة.
لا يُنصح بتحويل endpoint البحث إلى bulk crawler. استخدم pagination للمحتوى، change stream للمزامنة التفاضلية، والخلاصات أو واجهات الحصاد المناسبة للمهمة.
next_since كافٍ للمزامنة متعددة الصفحات؟استخدم next_cursor طالما has_more=true. next_since موجود للتوافق كـtimestamp checkpoint ولا يحل محل المؤشر المركب عند وجود صفحات لاحقة.
لا. افحص ملف الحقوق ورخصة المصدر وشروط المزود. الإتاحة التقنية ليست ترخيصًا.
https://healthrenewal.org/api/openapi.json. ويمكن بدء الاكتشاف من https://healthrenewal.org/api/v1.
لطلب Partner API، نطاقات مختلفة، مراجعة interoperability أو الإبلاغ عن مشكلة مع X-Request-Id، تواصل عبر contact@healthrenewal.org.
عند الإبلاغ عن مشكلة: أرسل المسار، وقت الطلب، حالة HTTP، وX-Request-Id. لا ترسل مفتاح API كاملًا بالبريد.