API’ye ham curl veya fetch ile erişebilirsiniz: sözleşme basit, tek bir X-Api-Key başlığı, gidip gelen JSON. Ama endpoint sayısı 865‘i aştığında ve istek gövdelerinde onlarca alan olduğunda, tipli bir istemci saatler kazandırır: yol otomatik tamamlama, istek ve yanıt tipleri, kararsız ağda otomatik yeniden denemeler.
Bu yüzden tek bir OpenAPI 3.1 sözleşmesinden üretilmiş üç resmi SDK’mız var.
Kurulum
Section titled “Kurulum”# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkMinimal örnek
Section titled “Minimal örnek”Aynı doğum haritası çağrısı, üç dilde.
TypeScript: openapi-fetch üzerinde ince bir sarmalayıcı (~6 KB çalışma zamanı), yol otomatik tamamlamalı:
import { Astroway } from '@astroway/sdk';
const aw = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY! });
const { data: chart } = await aw.client.POST('/chart', { body: { date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.4501, longitude: 30.5234, houseSystem: 'P', },});
// aw.client.POST is the raw typed fetch, so `chart` is the { ok, data } envelopeconsole.log(chart.data.houses.ascendant); // 212.0952574979425Python: httpx üzerinde, aynı arayüze sahip senkron Astroway ve asenkron AsyncAstroway:
from astroway import Astroway
aw = Astroway(api_key=os.environ['ASTROWAY_API_KEY'])
chart = aw.post('/chart', body={ 'date': '1990-07-14', 'time': '14:30:00', 'timezoneOffset': 3, 'latitude': 50.4501, 'longitude': 30.5234, 'houseSystem': 'P',})
print(chart['houses']['ascendant'])PHP: Guzzle 7 ve PSR-18 üzerinde:
<?phpuse Astroway\Astroway;
$aw = new Astroway(['apiKey' => getenv('ASTROWAY_API_KEY')]);
$chart = $aw->post('/chart', body: [ 'date' => '1990-07-14', 'time' => '14:30:00', 'timezoneOffset' => 3, 'latitude' => 50.4501, 'longitude' => 30.5234, 'houseSystem' => 'P',]);
echo $chart['houses']['ascendant'];Üçünün ortak noktaları
Section titled “Üçünün ortak noktaları”Üç farklı dil, ama aynı garantiler, çünkü üçü de aynı OpenAPI sözleşmesinden üretilir:
- Tüm endpoint’ler için istek ve yanıt tipleri. TS yol otomatik tamamlama ve tipli gövdeler sunar; Python PEP 561 uyumlu tipli bir pakettir; PHP tipli imzalar sunar. Alanları yan sekmedeki dokümantasyon değil, IDE önerir.
- Backoff ile yerleşik retry:
408,409,429,5xxiçin. Geçici bir ağ kesintisi veya rate limit kodunuzu düşürmez: istemci kendisi yeniden dener. - Stainless tarzı hata hiyerarşisi. Hatalar
catchiçindeki bir dize değil, sınıflara göre tiplidir. Belirli bir tipi yakalarsınız (RateLimitError,ValidationError) ve ona özel işlersiniz. - Kaynak olarak OpenAPI 3.1. API’ye bir endpoint eklendiğinde, elle kopyalama gerekmeden bir sonraki sürümde SDK’da görünür.
- Yayınlamada OIDC + SLSA provenance: TS ve PHP için Trusted Publisher / auto-mirror, Python için PyPI’da Trusted Publisher OIDC. Tedarik zinciri doğrulanabilir.
Hepsinde base URL https://api.astroway.info/v1/’dir ve anahtar X-Api-Key başlığıyla gönderilir. Ham HTTP çağrıları için kullanılan anahtarın aynısıdır; SDK yetkilendirmede hiçbir şeyi değiştirmez.
Framework sarmalayıcıları ve yol haritası
Section titled “Framework sarmalayıcıları ve yol haritası”Üç temel SDK’nın üzerinde belirli stack’ler için hazır entegrasyonlar var:
@astroway/react: React uygulamaları için hook’larastroway/sdk-symfony: Symfony için bundleastroway/sdk-laravel: Laravel için paket
Go, Ruby ve Rust üzerinde çalışılıyor ama henüz yayınlanmadı. Sayfaları, kurulum komutunun önizlemesiyle birlikte SDK kataloğunda zaten var; paket registry’ye çıktığında durum “kullanılabilir” olarak değişir.
Başlayın
Section titled “Başlayın”- dashboard/sign-up üzerinden bir anahtar: ayda 10 000 kredi ücretsiz
- Kendi dilinizin SDK’sını kurun (komutlar yukarıda)
- İlk çağrı: yukarıdaki snippet’teki doğum haritası, anahtarınızı
ASTROWAY_API_KEYiçine koyun
Her biri için örnekli tam SDK listesi SDK sayfasında.
Yay saniyesi hassasiyetinde konumlar, 4 satır kodla.
Kart gerekmeden ücretsiz anahtar. İlk ödemeye kadar ayda 5.000 istek.