AstroWay/api v2.190.0 · de
alle Systeme in Ordnung

Drei offizielle SDK: TypeScript, Python, PHP anstelle des rauen curl

Der räudige HTTP funktioniert, aber der typisierte Client spart Stunden: Autocomplete für Routen, Typen für Anfragen und Antworten, eingebauter retry für 408/409/429/5xx und eine Stahlschicht-Struktur für Fehler. Wir zerlegen die drei offiziellen SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - und aus welchem OpenAPI-Kontrakt sie generiert wurden.

Du kannst zum AstroWay-API über curl oder fetch gehen - der Vertrag ist einfach, ein einziger Header X-Api-Key, JSON hin und her. Aber wenn du über 758 hinausgehst und deine Anfragen mehrere Felder haben, spart ein typischer Kunde Stunden: Autocomplete für die Pfade, Typen für die Anfragen und Antworten, automatische Wiederholungen bei einer unstabilen Netzwerkverbindung.

Daher haben wir drei offizielle SDK, die alle aus einem OpenAPI 3.1-Kontrakt generiert wurden.

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

Der gleiche Aufruf zur natürlichen Karte in drei Sprachen.

TypeScript - eine dünne Schicht über openapi-fetch (~6 KB runtime), mit Autocomplete für die 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 } envelope
console.log(chart.data.houses.ascendant); // 212.0952574979425

Python - synchroner Astroway und asynchroner AsyncAstroway mit identischer Oberfläche, auf httpx basierend:

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 Guzzle 7 und PSR-18 basierend:

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

Die drei verschiedenen Sprachen, aber gleiche Garantien - weil alle drei aus demselben OpenAPI-Kontrakt generiert wurden:

  • Typen für die Anfragen und Antworten für alle Endpunkte. TS gibt Autocomplete für die Pfade und typisierte Körper; Python - PEP 561 typed-Paket; PHP - typisierte Signaturen. Die IDE gibt dir Tipps, und nicht die Dokumentation in der benachbarten Seite.
  • Integrierte Wiederholung mit Backoff auf 408, 409, 429, 5xx. Ein zeitweiser Netzwerkstörung oder Rate-Limit schlägt nicht dein Code - der Kunde wiederholt selbst.
  • Stainless-style Fehlerhierarchie. Fehler sind typisiert nach Klassen, und nicht ein String in catch. Du fängst einen bestimmten Typ - RateLimitError, ValidationError - und bearbeitest ihn genau.
  • OpenAPI 3.1 als Quelle. Du hinzufügst einen Endpunkt in die API - er erscheint in der SDK auf dem nächsten Release, ohne manuelles Duplizieren.
  • OIDC + SLSA-Provenance auf Veröffentlichungen: TS und PHP - über Trusted Publisher / auto-mirror, Python - Trusted Publisher OIDC auf PyPI. Der Lieferkettensicherheitsprüfungsprozess wird überprüft.

Die Basis-URL in allen ist - https://api.astroway.info/v1/, der Schlüssel wird über den Header X-Api-Key übertragen. Der gleiche Schlüssel, der für die HTTP-Aufrufe verwendet wird; die SDK ändert nichts an der Autorisierung.

Über den drei grundlegenden SDKs gibt es fertige Integrationsmöglichkeiten für bestimmte Stacks:

  • @astroway/react - Hooks für React-Anwendungen
  • astroway/sdk-symfony - Bundle für Symfony
  • astroway/sdk-laravel - Paket für Laravel

In der Arbeit, aber noch nicht veröffentlicht - Go, Ruby und Rust. Ihre Seiten sind bereits im SDK-Katalog mit der Installationskommandos; wenn der Paket in der Registry verfügbar ist, ändert sich der Status auf “verfügbar”.

  1. Schlüssel auf dashboard/sign-up - 10.000 Credits pro Monat kostenlos
  2. Installiere die SDK in deiner Sprache (Kommandos oben)
  3. Der erste Aufruf - natürliche Karte mit dem Snippet oben, setze deinen Schlüssel in ASTROWAY_API_KEY

Der vollständige Liste der SDKs mit Beispielen unter jedem - auf der Seite SDK.

MakSeong · AstroWay

Ich entwickle das AstroWay API: packe Swiss Ephemeris in reines REST und schreibe über langweilige Details, die eigentlich wichtig sind.

// darauf aufbauen

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.

Mehr aus dem Blog alle Beiträge →

Ephemeris 2026-07-19

Wie wir die Genauigkeit unter Kontrolle halten: CI gegen swetest und NASA

Die Genauigkeit in der Astro-API verfällt leicht nach einem Refaktorings der Ephemeriden. Wir analysieren den Schutz: ein Swiss-Ephemeris-Kern auf Browser und Server, hunderte gefrorene Snapshots auf Referenzkarten und die Dreiecksverbindung jedes PR gegen swetest CGI, Kerykeion, Prokerala und das NASA-Schattenkatalog.

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.