AstroWay/api v2.190.0 · tr
tüm sistemler normal

Bakım altındaki doğruluk nasıl kontrol edilir: CI karşı swetest ve NASA

Astro-API'de doğruluk kolayca bir ephemeris refactorundan düşebilir. Bu koruma hakkında: bir Swiss Ephemeris çekirdeği tarayıcı ve sunucu için, yüzlerce dondurulmuş snapshot için standart haritalar ve her PR karşı swetest CGI, Kerykeion, Prokerala ve NASA karanlık listesi.

Daha doğru bir şey, Astrodienst’te kullanıcıların sessizce seni kontrol etmen için neydi. Eğer doğal kartın kutu saati ile dağıldıysa, şikayet çabucak gelirdi. Ve en kötüsü, bu doğruyu kolayca gizlemek için bir şey: bir kod refactoringu, ve yarısı sessizce sekans dalgaları için gitti.

Aşağıdaki gibi, bunu yapmamızı sağlıyoruz.

Gezegenlerin pozisyonlarını hesaplayan Swiss Ephemeris, WASM’de bir araya getirildi. Anahtar nokta: bu çekirdek hem uygulamamızın tarayıcı uygulamasında hem de API sunucusunda aynıdır. core/ kod tabanını bir cross-repo alias’ı aracılığıyla arka plana çekiyoruz ve onu bir bantta inşa ediyoruz. “Tarayıcı” ve “API sunucusu” uygulamaları arasında bir ayrım yok.

Dış diyapazonun dışındaki tarihler için, analitik bir geri dönüş (Moshier), biraz daha sert ama sınırda kopukluk yok. Bilinen dürüstlük: gerçek çekirdek versiyonunu açıkça belirtmiyoruz, çünkü gerçek çekirdek versiyonu en son upstream’tan daha düşük ve yazmak için bir yalan olurdu.

Her hesaplamalı endpoint, donanım saniyorları bir setine sahiptir - 873 JSON fiksürler, bu bantta. Ranner, endpointi etalon kartlara çalıştırır ve fiksürle karşılaştırır. Herhangi bir gezegenin uzunluğu 5e-5° (0.18”)‘dan fazla bir sapma, testi reddeder.

Eton kartları, sınırda değil, merkezde değil, ama sınırda vurur:

  • Monroe, Diana, Einstein, Bowie - tarihsel kartlar, bilinen doğum verileri ile
  • Kuzey kutbunda - ev sistemleri doğuyor
  • Ekvator - onlar farklı davranır
  • Güney yarımküresinde - terslik kontrolü

Sınırların dışındaki durumlar, sadece kuyrukların değil, ama regresyonların da yakalanır.

Dışarıdan kaynaklara karşı üçgenleme

Section titled “Dışarıdan kaynaklara karşı üçgenleme”

Saniyorlar, kendileri ile karşılaştırıldığında regresyonları yakalar. Dışarıdan kaynaklara karşı doğrulamak için, her rilize, bağımsız kaynaklara karşı doğrulandı:

KarşılaştırmakDoğrulandıRozlaşma
swetest CGI (Astrodienst)gezegenlerin uzunluğu, ev sistemleri0.000"
Kerykeion (Python, pyswisseph)bağımsız Swiss Ephimere< 0.2"
Prokerala (sidereal Lahiri)sidiyelik pozisyonları8-17" , sistem formülün farklılığı, rüşiyenin değil
NASA 5-Millennium Eclipse Catalogzaman ve türü, karanlık< 1 dakika

Prokerala ile rozlaşma, hata değil, farklılıkların farklılığıdır. Swetest, endüstri standardı, durağan rozlaşma sahiptir.

Astro kartografik hattı, geometrik olarak doğrulandı - ekvatorda doğruluk, 1.5 km’den daha iyidir.

Dürüstlük, CI-gate’dir, değil, tek seferli doğrulamadır:

  • api-accuracy.yml - her PR’de, arka plan kodunu çalıştırır, tüm saniyorları + üçgenleme. Reddeden test, birleştirme bloklar.
  • check-eclipse-accuracy.yml - her yıl, NASA kataloğu ile karanlık doğrulandı; rozlaşma, ortalıkta olduğunda, otomatik olarak bir sorun açar.
  • check-sweph-updates.yml - her ay, Swiss Ephemeris ve WASM paketini kontrol eder; yeni versiyon, rüşiyenin otomatik güncellemesi, çok hassas bir şeydir.

Garantörlük basit: gezegenlerin uzunluğu, Swiss Ephemeris etalonu ile, < 0.1 derece’den daha az sapma ile. Bu sınır, otomatik olarak korunan bir sınır, değil, bir garanti. Eğer regresyon ortaya çıkarsa, CI’de düşer, değil, kullanıcıların şikayetinde.

Bu verileri, etalon kartlar için, Dürüstlük sayfasında açıklayız.

MakSeong · AstroWay

I build the AstroWay API: Swiss Ephemeris on a clean REST surface, and I write about the dull parts that turn out to matter.

// bunu kullanarak inşa et

Solar Fire'daki aynı Swiss Ephemeris - 4 satır kodla.

Kart gerekmeden ücretsiz anahtar. İlk ödemeye kadar ayda 5.000 istek.

Daha fazla blog yazısı tüm yazılar →

Engineering 2026-07-15

Üç resmi SDK: TypeScript, Python, PHP ham curl yerine

Ham HTTP çalışır, ancak tiplenmiş istemci saatler tasarruf ettirir: yol otomatik tamamlaması, istek ve yanıt tipleri, 408/409/429/5xx için yerleşik retry ve Stainless tarzı hata hiyerarşisi. Üç resmi SDK'yı inceliyoruz - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - ve bunların tek bir OpenAPI sözleşmesinden nasıl üretildiğini.

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.