AstroWay/api v2.190.0 · ar
جميع الأنظمة تعمل بشكل طبيعي

كيف نتحكم في الدقة: CI ضد swetest و NASA

الدقة في astro-API تتدهور بسهولة بسبب تعديل واحد في الإيفيميريدات. نستعرض الحماية: نواة واحدة من Swiss Ephemeris للمتصفح والخادم، مئات اللقطات المجمدة على خرائط مرجعية وتثليث كل PR ضد swetest CGI و Kerykeion و Prokerala ودليل خسوفات NASA.

الضبط - هذا هو ما يبحث فيه المستخدم سركاً عنك على Astrodienst. إذا كانت المخطط الحالية تتناثر إلى دقيقة القوس، فسيصل الشكوى بسرعة. و أسوأ ما يحدث في هذا هو أن الضبط يمكن أن يهدم بسهولة: تعديل واحد في كود الإفيميريد، و نصف النقاط النهائية تختفي بسرعة إلى ثانية الدائرة.

هذا هو كيف نمنع هذا من التماس.

واحد من النواة إلى اثنين من البيئات

Section titled “واحد من النواة إلى اثنين من البيئات”

مواقع الكواكب تتمحسب في Swiss Ephemeris ، مصنف في WASM. المفتاح: هذا هو نفس النواة في متصفح تطبيقنا، و على الخادم API. واحدة من قاعدة الكود core/ ، متصلة في الخلفية عبر cross-repo alias و متضمنة في البندل على البناء. لا توجد «متصفحية» و «خادمية» من التطبيق، التي يمكن أن تختلف - تختلف في شيء.

للمواعيد خارج نطاق الإفيميريد هو فallback تحليلي (Moshier) ، قاسي قليلاً ، لكنه لا يهدم على الحدود. و هو معروف: لا نعلن بشكل علني نسخة محددة من الرشح ، لأنه النسخة الحقيقية من النواة أقل من النسخة الأحدث في upstream ، و كتابة رقم كبير كان سيجري بذلك الكذب.

كل نقطة حسابية تتمحسب في السنابشوتات المحجوزة - 873 JSON-фикستور في لحظة هذا البناء. الرنر يجر نقطة حسابية على المخططات الأساسية و يرتبط بفيكسير مع الفيكسير. أي اختلاف في طول القوس أكبر من 5e-5° (0.18″) سيجري بذلك الفحص.

المخططات الأساسية مختارة لضربة على الحدود ، وليس فقط في «المركز» المريح:

  • Monroe ، Diana ، Einstein ، Bowie - المخططات التاريخية مع البيانات المعروفة
  • النقطة الباردة - حيث تتشكل الأنظمة في المنزل
  • النقطة الاستوائية - حيث تختلف الأنظمة بشكل مختلف
  • النقطة الجنوبية - حيث يتم التحقق من التماثل

الحالات الحدودية تكتشف نفس التضبط الذي لا يظهر على المخطط conditional.

التثبيت المثلثي ضد المصادر الخارجية

Section titled “التثبيت المثلثي ضد المصادر الخارجية”

السنابشوتات تكتشف نفس التضبط الذي لا يظهر على نفسها. لضربة التحقق من الصدق ، كل إصدار يرتبط بمنابع مستقلة:

ضد ماما يرتبط بهالتباين
swetest CGI (Astrodienst)طول القوس ، الكواكب ، النقاط0.000″
Kerykeion (Python ، pyswisseph)إعادة التمثيل المستقل للإفيميريد< 0.2″
Prokerala (sidereal Lahiri)المواقع السايديرية8-17″ ، التباين في النقطة الأصلي ، لا يهدم الرشح
NASA 5-Millennium Eclipse Catalogالوقت ، النوع ، والظل< 1 دقيقة

التباين مع Prokerala - ليس خطأ: هو مختلف في إعادة التمثيل ، و نستند عليه بشكل واضح ، وليس على إخفاءه. مع swetest ، الذي هو المعيار في الصناعة ، التباين هو صفر.

خطوط الكواكب المخططية تكتشف بشكل منفصل - الدقة على الاستو أفضل من 1.5 كم.

ما يهدر على كل طلب تعديل

Section titled “ما يهدر على كل طلب تعديل”

الضبط هو CI-gate ، وليس التحقق من الصدق مرة واحدة:

  • api-accuracy.yml - على كل طلب تعديل في الخلفية يجر كل مجموعة من السنابشوتات + التثبيت المثلثي. الفحص الأحمر يمنع الاندماج.
  • check-eclipse-accuracy.yml - مرة واحدة في السنة يرتبط مع الكتالوج NASA ، و التباين أكبر من الحد يؤدي إلى الملف.
  • check-sweph-updates.yml - مرة واحدة في الأسبوع يرتبط مع upstream Swiss Ephemeris و WASM-باكيت ، و النسخة الجديدة - الملف على المراجعة ، بدون تلقائي الاندماج (تحديث الرشح هو أمر حساس للغاية للتلقائي).

الضمان البسيط: مواقع الكواكب في نطاق < 0.1 ثانية القوس من الإفيميريد الأساسي ، و هذا الحد محمي بشكل تلقائي ، وليس بالوعد في README. إذا حدثت تباية ، فسيجري ذلك في CI ، وليس في الملف من مستخدمك.

النسخة العامة لهذه الأرقام ، مع جدول التباين على المخططات المحددة ، موجودة على صفحة الضبط.

MakSeong · AstroWay

أبني AstroWay API: أُغلف Swiss Ephemeris في REST نقي وأكتب عن التفاصيل المملة التي هي فعلاً مهمة.

// ابنِ عليه

نفس Swiss Ephemeris الموجود في Solar Fire - في 4 أسطر من الكود.

مفتاح مجاني بدون بطاقة. 5000 استدعاء شهرياً حتى الدفعة الأولى.

المزيد من المدونة جميع المقالات →

Engineering 2026-07-15

ثلاثة SDK رسمية: TypeScript, Python, PHP بدلاً من curl الخام

HTTP الخام يعمل، لكن العميل المطبّق يوفّر ساعات: إكمال تلقائي للمسارات، أنواع الطلب والاستجابة، إعادة محاولة مدمجة على 408/409/429/5xx، وتسلسل أخطاء بنمط Stainless. نستعرض ثلاثة SDK رسمية - @astroway/sdk (npm)، astroway (PyPI)، astroway/sdk (Packagist) - وكيف تم توليدها من عقد OpenAPI واحد.

Industry 2026-06-05

Free Astrology API: Which One Has the Best Free Tier in 2026?

A side-by-side of free tiers across the major astrology APIs - credits, request caps, card requirements - and how much you can actually build for free.

Engineering 2026-06-05

Horoscope API Tutorial: Build a Daily Horoscope Feature

Add daily, weekly and monthly horoscopes to your app via API - sign-based text vs transit-based personalization - with TypeScript and Python code.