Man kann die API mit rohem curl oder fetch ansprechen: Der Vertrag ist einfach, ein einziger Header X-Api-Key, JSON hin und zurück. Aber wenn es mehr als 761 Endpoints gibt und die Request-Bodies ein Dutzend Felder haben, spart ein typisierter Client Stunden: Autovervollständigung der Pfade, Request- und Response-Typen, automatische Wiederholungen in instabilen Netzen.
Deshalb haben wir drei offizielle SDKs, generiert aus einem einzigen OpenAPI-3.1-Vertrag.
Installation
Abschnitt betitelt „Installation“# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkMinimalbeispiel
Abschnitt betitelt „Minimalbeispiel“Derselbe Geburtshoroskop-Aufruf in drei Sprachen.
TypeScript: ein dünner Wrapper um openapi-fetch (~6 KB Runtime), mit Autovervollständigung der Pfade:
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: synchrones Astroway und asynchrones AsyncAstroway mit identischer Oberfläche, auf Basis von httpx:
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: auf Basis von Guzzle 7 und PSR-18:
<?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'];Was alle drei gemeinsam haben
Abschnitt betitelt „Was alle drei gemeinsam haben“Drei verschiedene Sprachen, aber dieselben Garantien, denn alle drei werden aus demselben OpenAPI-Vertrag generiert:
- Request- und Response-Typen für alle Endpoints. TS bietet Autovervollständigung der Pfade und typisierte Bodies; Python ein typisiertes Paket nach PEP 561; PHP typisierte Signaturen. Die IDE schlägt die Felder vor, nicht die Dokumentation im Nachbar-Tab.
- Eingebauter Retry mit Backoff bei
408,409,429,5xx. Ein vorübergehender Netzwerkfehler oder ein Rate Limit bringt deinen Code nicht zum Absturz: Der Client wiederholt selbst. - Fehlerhierarchie im Stainless-Stil. Fehler sind nach Klassen typisiert, kein String im
catch. Du fängst einen konkreten Typ,RateLimitError,ValidationError, und behandelst ihn gezielt. - OpenAPI 3.1 als Quelle. Ein neuer Endpoint in der API erscheint im nächsten Release in den SDKs, ohne manuelles Duplizieren.
- OIDC + SLSA-Provenance bei der Veröffentlichung: TS und PHP über Trusted Publisher / Auto-Mirror, Python über Trusted Publisher OIDC auf PyPI. Die Lieferkette ist überprüfbar.
Die Base URL ist überall https://api.astroway.info/v1/, der Schlüssel wird im Header X-Api-Key übergeben. Es ist derselbe Schlüssel wie für rohe HTTP-Aufrufe; das SDK ändert nichts an der Autorisierung.
Framework-Wrapper und Roadmap
Abschnitt betitelt „Framework-Wrapper und Roadmap“Auf den drei Basis-SDKs bauen fertige Integrationen für bestimmte Stacks auf:
@astroway/react: Hooks für React-Appsastroway/sdk-symfony: ein Bundle für Symfonyastroway/sdk-laravel: ein Paket für Laravel
In Arbeit, aber noch nicht veröffentlicht: Go, Ruby und Rust. Ihre Seiten stehen bereits im SDK-Katalog mit einer Vorschau des Install-Befehls; sobald das Paket in der Registry erscheint, wechselt der Status auf “verfügbar”.
Loslegen
Abschnitt betitelt „Loslegen“- Schlüssel über dashboard/sign-up: 10 000 Credits pro Monat kostenlos
- Installiere das SDK in deiner Sprache (Befehle oben)
- Erster Aufruf: das Geburtshoroskop aus dem Snippet oben, mit deinem Schlüssel in
ASTROWAY_API_KEY
Die vollständige Liste der SDKs mit Beispielen für jedes steht auf der Seite SDK.
Derselbe Swiss Ephemeris wie in Solar Fire - in 4 Zeilen Code.
Kostenloser Schlüssel ohne Kreditkarte. 5.000 Aufrufe pro Monat vor der ersten Zahlung.