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

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

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

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.

Terminal window
# TypeScript / JavaScript
npm install @astroway/sdk
# Python
pip install astroway
# PHP
composer require astroway/sdk

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 } envelope
console.log(chart.data.houses.ascendant); // 212.0952574979425

Python: 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:

<?php
use 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'];

Üç 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, 5xx için. Geçici bir ağ kesintisi veya rate limit kodunuzu düşürmez: istemci kendisi yeniden dener.
  • Stainless tarzı hata hiyerarşisi. Hatalar catch iç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’lar
  • astroway/sdk-symfony: Symfony için bundle
  • astroway/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.

  1. dashboard/sign-up üzerinden bir anahtar: ayda 10 000 kredi ücretsiz
  2. Kendi dilinizin SDK’sını kurun (komutlar yukarıda)
  3. İlk çağrı: yukarıdaki snippet’teki doğum haritası, anahtarınızı ASTROWAY_API_KEY içine koyun

Her biri için örnekli tam SDK listesi SDK sayfasında.

MakSeong · AstroWay

I build the AstroWay API: arc-second astrology math on a clean REST surface, and I write about the dull parts that turn out to matter.

// bunu kullanarak inşa et

Yay saniyesi hassasiyetinde konumlar, 4 satır kodla.

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

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

Ephemeris 2026-07-19

Doğruluğu nasıl kontrol altında tutuyoruz: swetest ve NASA'ya karşı CI

Bir astroloji API'sinde doğruluk, efemeris kodundaki tek bir refactoring ile kolayca bozulabilir. Korumayı inceliyoruz: uygulama ve API için tek bir Swiss Ephemeris çekirdeği, referans haritalar üzerinde yüzlerce dondurulmuş snapshot ve her PR'ın swetest CGI, Kerykeion, Prokerala ve NASA tutulma kataloğuna karşı üçgenlenmesi.

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.