AstroWay/api v2.190.0 · hi
सभी सिस्टम सामान्य हैं

हम कैसे प्रायदिशा की सटीकता को नियंत्रण में रखते हैं: CI के खिलाफ swetest और NASA

अस्त्रो-एपीआई में सटीकता एक सिंगल रिफैक्टरिंग के बाद भी आसानी से डिग्रेड हो जाती है। हम सुरक्षा के साथ संरक्षण को समझते हैं: एक Swiss Ephemeris कोर पर ब्राउज़र और सर्वर, सैकड़ों फ्रीज़ स्नैपशॉट्स पर स्टैंडर्ड मैप्स और swetest CGI, Kerykeion, Prokerala और NASA के ग्राह्य क्षेत्र के लिए त्रिकोणमिति प्रत्येक PR के खिलाफ।

Пřesnost - це той аспект, який користувач мовчки перевіряє тебе на AstroWay. Якщо натальна карта розійшлася на кутову хвилину, скарга прилетить швидко. І найгірше в цьому те, що точність легко зламати непомітно: один рефакторинг у коді ефемерид, і половина ендпоінтів тихо поїхала на секунди дуги.

Ось як ми не даємо цьому статися.

Одне ядро на два середовища

Section titled “Одне ядро на два середовища”

Планетні позиції рахує Swiss Ephemeris, скомпільований у WASM. Ключове: це те саме ядро і в браузері нашого застосунку, і на сервері API. Одна кодова база core/, підтягнута в бекенд через cross-repo alias і вбудована в бандл на білді. Немає «браузерної» та «серверної» реалізації, які можуть розійтися - розходитися нічому.

Для дат поза основним діапазоном ефемерид є аналітичний fallback (Moshier), трохи грубший, але без розривів на межах. Свідома чесність: конкретну версію рушія ми публічно не заявляємо, бо реальна версія ядра нижча за найновіший upstream, і писати гучну цифру було б брехнею.

Кожен розрахунковий ендпоінт має набір заморожених снапшотів - 873 JSON-фікстур на момент цього білда. Раннер проганяє ендпоінт на еталонних картах і побайтово (в межах толерансу) звіряє з фікстурою. Будь-яке відхилення планетної довготи більше ніж 5e-5° (0.18″) валить тест.

Еталонні карти підібрані так, щоб бити по краях, а не тільки по «зручному» центру:

  • Монро, Діана, Ейнштейн, Бові - історичні карти з відомими даними народження
  • полярна широта - де системи домів вироджуються
  • екваторіальна - де вони поводяться інакше
  • південна півкуля - перевірка дзеркальності

Граничні випадки ловлять саме ті регресії, які не видно на карті умовного киянина.

Триангуляція проти зовнішніх джерел

Section titled “Триангуляція проти зовнішніх джерел”

Снапшоти ловять регресії відносно самих себе. Щоб перевірити абсолютну правду, кожен реліз звіряється з незалежними джерелами:

Проти чогоЩо перевіряєРозходження
swetest CGI (Astrodienst)планетні довготи, куспіди домів0.000″
Kerykeion (Python, pyswisseph)незалежна реалізація SwEph< 0.2″
Prokerala (sidereal Lahiri)сайдеричні позиції8-17″, системна різниця формули аянамші, не рушія
NASA 5-Millennium Eclipse Catalogчас і тип затемнень< 1 хв

Розходження з Prokerala - не помилка: це різні реалізації формули Lahiri, і ми документуємо це явно, а не ховаємо. З swetest, який є еталоном індустрії, дрейф нульовий.

Астрокартографічні лінії окремо перевіряються геометрично - точність на екваторі краща за 1.5 км.

Що гоняється на кожному PR

Section titled “Що гоняється на кожному PR”

Точність - це CI-gate, а не разова перевірка:

  • api-accuracy.yml - на кожен PR у бекенд-код проганяє весь набір снапшотів + триангуляцію. Червоний тест блокує merge.
  • check-eclipse-accuracy.yml - раз на рік звіряє затемнення з каталогом NASA; розходження понад поріг автоматично заводить issue.
  • check-sweph-updates.yml - щотижня стежить за upstream Swiss Ephemeris і WASM-пакетом; нова версія - issue на ревʼю, без автомерджу (оновлення рушія ефемерид - надто чутлива штука для авто-апдейту).

Гарантія проста: планетні позиції в межах < 0.1 кутової секунди від еталонного Swiss Ephemeris, і ця межа захищена автоматикою, а не обіцянкою в README. Якщо колись зʼявиться регресія, вона впаде в наш CI, а не у скарзі твого користувача.

Публічна версія цих цифр, з таблицею розходжень по конкретних картах, живе на сторінці Точність.

MakSeong · AstroWay

मैं AstroWay API को बनाता हूँ: मैं Swiss Ephemeris को साफ़ REST में लोड करता हूँ और उसके बारे में जानकारी को लिखता हूँ जो वास्तव में महत्वपूर्ण है।

// इस पर बनाएं

वही Swiss Ephemeris जो Solar Fire में है - बस 4 लाइनों के कोड में।

कार्ड के बिना मुफ्त कुंजी। पहले भुगतान तक 5,000 कॉल प्रति माह।

ब्लॉग से और सभी पोस्ट →

Engineering 2026-07-15

तीन आधिकारिक SDK: TypeScript, Python, PHP कच्चे curl के बजाय

कच्चा HTTP काम करता है, लेकिन टाइप किया गया क्लाइंट घंटों की बचत करता है: पथ स्वत: पूर्णता, अनुरोध और प्रतिक्रिया प्रकार, 408/409/429/5xx के लिए बनाए गए रीट्री और स्टेनलेस-स्टाइल त्रुटि श्रेणी। हम तीन आधिकारिक SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - की जांच करते हैं और यह कैसे एक ओपनएपीआई अनुबंध से उत्पन्न होते हैं।

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.