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.
Installation
Abschnitt betitelt „Installation“# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkMinimaler Beispiel
Abschnitt betitelt „Minimaler Beispiel“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 } envelopeconsole.log(chart.data.houses.ascendant); // 212.0952574979425Python - 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:
<?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 sie gemeinsam haben
Abschnitt betitelt „Was sie gemeinsam haben“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.
Framework-Abdeckungen und Roadmap
Abschnitt betitelt „Framework-Abdeckungen und Roadmap“Über den drei grundlegenden SDKs gibt es fertige Integrationsmöglichkeiten für bestimmte Stacks:
@astroway/react- Hooks für React-Anwendungenastroway/sdk-symfony- Bundle für Symfonyastroway/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”.
Starten
Abschnitt betitelt „Starten“- Schlüssel auf dashboard/sign-up - 10.000 Credits pro Monat kostenlos
- Installiere die SDK in deiner Sprache (Kommandos oben)
- 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.
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.