آخر تحديث 2026-07-15
حدود واجهة برمجة التطبيقات
لمن هذه الصفحة
هذه الصفحة لمشغّلي الموقع. بيانات الطقس المُشاهدة مشتركة وصديقة للذاكرة المؤقتة حتى تُستهلك حدود OpenWeather المجانية (افتراضي 1000 استدعاء/يوم) بشكل أقل.
الحصة اليومية وبالدقيقة
الافتراضيات من constants/weather.js: DAILY_LIMIT 1000، WARNING_THRESHOLD 800، SOFT_BLOCK_THRESHOLD 950، PER_MINUTE_LIMIT 60 استدعاء upstream لكل دقيقة متحركة. platform_settings يمكنه تجاوز daily_limit وsoft_block_threshold وwarning_threshold وper_minute_limit (يُزرع عند أول فتح DB). العداد يُعاد عند منتصف الليل UTC.
قيم الحالة
ok — تحت عتبة التحذير. warning — عند أو فوق warning_threshold (افتراضي 800 استدعاء اليوم). soft_block — عند أو فوق soft_block_threshold (افتراضي 950)؛ upstream محجوب. hard_block — عند daily_limit (افتراضي 1000). سقف الدقيقة يحجب upstream أيضًا عند per_minute_limit استدعاء في آخر 60 ثانية.
إصابات الذاكرة مقابل upstream
إصابات قاعدة L2 تُسجّل في api_call_log مع cache_hit=1 ولا تزيد عداد upstream اليومي. إصابات ذاكرة L1 لا تُسجّل في SQLite — recordCacheHit يعود مبكرًا عندما meta.layer هو memory. فقط استدعاءات upstream OpenWeather الناجحة (status 200، cache_hit=0) تُحسب للحصة. تقديم emergency stale يتجنب upstream عند الحجب.
تشخيصات الإدارة
افتح /admin (بعد تسجيل الدخول) للمستخدم اليوم / الحد اليومي والمتبقي والحالة وإعدادات فترة التحديث. API: GET /api/admin/usage.
API الإدارة
GET /api/admin/usage — لقطة حصة واستدعاءات حديثة. GET|PATCH /api/admin/config — API إعدادات الإدارة الرئيسية (فترة التحديث، الموصلات، افتراضيات الملخص، AdSense، مفاتيح التنبيه، إلخ). Legacy ضيق: PATCH /api/admin/settings { refreshIntervalMs }. Auth: cookie جلسة HttpOnly meridian_admin_session بعد /login. سر التوقيع ADMIN_SECRET (ليس ADMIN_PASSWORD). تجاوز dev عند NODE_ENV=development وALLOW_DEV_ADMIN_BYPASS=1 وADMIN_SECRET unset.
حدود مزود OpenWeather
meridian يتتبع عداد upstream الخاص؛ OpenWeather قد يحدّ المعدل أو يرفض المفاتيح بشكل مستقل (401، 429). المنظم يحوّلها لأخطاء API منظمة للعميل.
وضع الطوارئ
عند soft/hard block، يرى المستخدمون آخر snapshot SQLite مقبولًا مُعلَّمًا freshness emergency بدل خطأ فارغ — ما لم لم يوجد snapshot أبدًا لتلك الإحداثيات.