AstroWay/api v2.190.0 · nl
alle systemen normaal

Drie officiële SDK's: TypeScript, Python, PHP in plaats van rauwe curl

Rauwe HTTP werkt, maar een getypeerde client bespaart uren: autocompletion voor paden, request- en responstypes, ingebouwde retry voor 408/409/429/5xx en Stainless-style foutenhiërarchie. We bespreken de drie officiële SDK's - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - en hoe ze zijn gegenereerd uit één OpenAPI-contract.

Je kunt naar de API gaan met curl of fetch - een eenvoudige contract, één header X-Api-Key, JSON in- en uitvoer. Maar wanneer er meer dan 758 endpoints zijn, en de lichaam van de aanvragen tientallen velden hebben, zal een type client je uren besparen: autocompletion van paden, types van aanvragen en antwoorden, automatische herhaalvragen op een onstabiele netwerksituatie.

Daarom hebben we drie officiële SDK’s, gegenereerd vanuit één OpenAPI 3.1-contract.

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

Hetzelfde oproepen van de natte kaart in drie talen.

TypeScript - een dunne laag over openapi-fetch (~6 KB runtime), met autocompletion van paden:

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 - synchroon Astroway en asynchroon AsyncAstroway met identieke interface, over 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 - over Guzzle 7 en PSR-18:

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

Drie verschillende talen, maar identieke garanties - omdat alle drie gegenereerd zijn vanuit hetzelfde OpenAPI-contract:

  • Types van aanvragen en antwoorden voor alle endpoints. TS geeft autocompletion van paden en typegeïnterpreteerde lichamen; Python - PEP 561 typed-pakket; PHP - typegeïnterpreteerde signatures. De IDE geeft suggesties voor velden, en niet de documentatie in de naastgelegen tab.
  • Ingebouwd herhaalvragen met backoff op 408, 409, 429, 5xx. Tijdelijke netwerksituatie of rate-limiting valt je code niet - de client herhaalt zelf.
  • Stainless-style foutstructuur. Fouten zijn typegeïnterpreteerd naar klassen, en niet een string in catch. Je vangt een specifiek type - RateLimitError, ValidationError - en verwerkt het precies.
  • OpenAPI 3.1 als bron. Je voegt een endpoint toe in de API - het verschijnt in de SDK op de volgende release, zonder handmatige duplicatie.
  • OIDC + SLSA-provenance op publicaties: TS en PHP - via Trusted Publisher / auto-mirror, Python - Trusted Publisher OIDC op PyPI. De leveringsketen is gecontroleerd.

Base URL in allemaal - https://api.astroway.info/v1/, sleutel wordt overgebracht met header X-Api-Key. Dezelfde sleutel, die voor de siere HTTP-oproepen; de SDK verandert niets in de autorisatie.

Over de drie basis-SDK’s zijn er klaarstaande integraties voor specifieke stacks:

  • @astroway/react - hooks voor React-toepassingen
  • astroway/sdk-symfony - bundel voor Symfony
  • astroway/sdk-laravel - pakket voor Laravel

In gebruik, maar nog niet gepubliceerd - Go, Ruby en Rust. Hun pagina’s zijn al in de SDK-catalogus met de installatiecommando’s; wanneer het pakket uitkomt in de registry, wordt de status veranderd in “beschikbaar”.

  1. Sleutel op dashboard/sign-up - 10 000 credits per maand gratis
  2. Installeer de SDK in je taal (commando’s hierboven)
  3. Eerste oproep - natte kaart van het snippet hierboven, plaats je sleutel in ASTROWAY_API_KEY

Volledige lijst van SDK’s met voorbeelden onder elk - op pagina SDK.

MakSeong · AstroWay

I build the AstroWay API: Swiss Ephemeris on a clean REST surface, and I write about the dull parts that turn out to matter.

// bouw hierop

Dezelfde Swiss Ephemeris als in Solar Fire - in 4 regels code.

Gratis sleutel zonder kaart. 5.000 calls per maand tot de eerste betaling.

Meer uit de blog alle berichten →

Ephemeris 2026-07-19

Hoe we de nauwkeurigheid onder controle houden: CI versus swetest en NASA

De nauwkeurigheid van onze astro-API kan gemakkelijk afnemen door één refactor van de ephemerides. We analyseren de beveiliging: één Swiss Ephemeris-kern op de browser en server, honderden gefreezeerde snapshot's op referenties en triangulatie van elk PR tegen swetest CGI, Kerykeion, Prokerala en het catalogus van NASA-sterren.

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.