API’ye erişim için curl veya fetch kullanmak mümkün - basit bir sözleşme, tek bir X-Api-Key başlığı, JSON’a dönüştürülür. Ancak endpoint sayısının 758 üzerinde ve isteklerin yüzlerce parametresi olduğunda, tipik bir client saatler kazandırır: yol autocompletionu, istek ve cevap türleri, ve isteğin yeniden gönderilmesi için otomatik tekrarlar.
Dolayısıyla, biz üç resmi SDK var, hepsi aynı OpenAPI 3.1 sözleşmesinden üretilmiştir.
Kurulum
Section titled “Kurulum”# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkEn Azı Örnek
Section titled “En Azı Örnek”Oynatılan haritasını üç dilde aynı şekilde çağırmak.
TypeScript - openapi-fetch (~6 KB runtime) üzerine ince bir katman, yol autocompletionu:
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 - Astroway ve AsyncAstroway ile aynı yüzey, httpx üzerine:
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 üzerine:
<?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'];Üçüncü Şey
Section titled “Üçüncü Şey”Farklı üç dil, aynı garantiler - hepsi aynı OpenAPI sözleşmesinden üretilmiştir:
- Tüm endpointler için istek ve cevap türleri. TS yol autocompletionu ve türize edilmiş istek ve cevapları; Python - PEP 561 türize edilmiş paket; PHP - türize edilmiş imzalar. IDE, alanları değil, yan sayfadaki belgelere bakarak gösterir.
- İsteğin yeniden gönderilmesi için otomatik geri alma
408,409,429,5xxiçin. Geçici ağ hataları veya hız limitleri, kodunuzu durdurur - client, yeniden gönderir. - Stainless-style hata hiyerarşisi. Hatalar, sınıflara göre türize edilir, değil, satırda
catch. Belirli bir hata türü -RateLimitError,ValidationError- ve doğru bir şekilde işler. - OpenAPI 3.1 kaynağı. API endpointini ekleyin - SDK’da sonraki sürümde, elbette, otomatik olarak görünür.
- OIDC + SLSA-provans yayın için: TS ve PHP - Güvenilen Yayıncı / otomatik-çevirmen, Python - Güvenilen Yayıncı OIDC PyPI’de. Tüketim zinciri kontrolü yapılır.
Tüm SDK’lar için base URL - https://api.astroway.info/v1/, anahtar X-Api-Key başlığıyla gönderilir. Oynatılan haritası için aynı anahtar, aynı HTTP çağrıları için.
Çerçeve katmanları ve haritalama
Section titled “Çerçeve katmanları ve haritalama”Üç temel SDK’nin üzerine, belirli bir stek için hazır entegrasyonlar var:
@astroway/react- React uygulamaları için hook’larastroway/sdk-symfony- Symfony için paketastroway/sdk-laravel- Laravel için paket
Çalışma, ama henüz yayınlanmamış - Go, Ruby ve Rust. Onların sayfaları zaten SDK kataloğunda, önizleme kurulum komutları var; paket, registry’de görününce, durum değişir.
Başlama
Section titled “Başlama”- Anahtar dashboard/sign-up - ayda 10.000 kredit için ücretsiz
- SDK’nı kendi dilinde kur (komutlar yukarıda)
- İlk çağrı - oynatılan haritası, örnekteki snippet, anahtarını
ASTROWAY_API_KEYolarak yerleştir
Tam SDK listesi ve örnekleri, SDK sayfasında.
Solar Fire'daki aynı Swiss Ephemeris - 4 satır kodla.
Kart gerekmeden ücretsiz anahtar. İlk ödemeye kadar ayda 5.000 istek.