Je kunt de API prima met kale curl of fetch aanspreken: het contract is eenvoudig, één header X-Api-Key, JSON heen en terug. Maar als er meer dan 865 endpoints zijn en request bodies een tiental velden hebben, scheelt een getypeerde client uren: autocompletion van paden, request- en responsetypes, automatische retries op een instabiel netwerk.
Daarom hebben we drie officiële SDK’s, gegenereerd uit één OpenAPI 3.1-contract.
Installatie
Section titled “Installatie”# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkMinimaal voorbeeld
Section titled “Minimaal voorbeeld”Dezelfde aanroep voor een geboortehoroscoop in drie talen.
TypeScript: een dunne wrapper rond 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 } envelopeconsole.log(chart.data.houses.ascendant); // 212.0952574979425Python: de synchrone Astroway en de asynchrone AsyncAstroway met een identieke interface, bovenop 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: bovenop Guzzle 7 en 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'];Wat ze alle drie gemeen hebben
Section titled “Wat ze alle drie gemeen hebben”Drie verschillende talen, maar dezelfde garanties, omdat ze alle drie uit hetzelfde OpenAPI-contract worden gegenereerd:
- Request- en responsetypes voor alle endpoints. TS geeft autocompletion van paden en getypeerde bodies; Python is een getypeerd pakket volgens PEP 561; PHP heeft getypeerde signaturen. Je IDE stelt de velden voor, in plaats van de documentatie in een tabblad ernaast.
- Ingebouwde retry met backoff bij
408,409,429,5xx. Een tijdelijke netwerkstoring of rate limit laat je code niet crashen: de client probeert het zelf opnieuw. - Foutenhiërarchie in Stainless-stijl. Fouten zijn getypeerd per klasse, niet een string in je
catch. Je vangt een specifiek type, zoalsRateLimitErrorofValidationError, en handelt dat gericht af. - OpenAPI 3.1 als bron. Voegen we een endpoint aan de API toe, dan verschijnt het bij de volgende release in de SDK, zonder handmatig dubbel werk.
- OIDC + SLSA-provenance bij publicatie: TS en PHP via Trusted Publisher / auto-mirror, Python via Trusted Publisher OIDC op PyPI. De supply chain is controleerbaar.
De base URL is overal https://api.astroway.info/v1/, de sleutel gaat mee in de header X-Api-Key. Het is dezelfde sleutel als voor kale HTTP-aanroepen; de SDK verandert niets aan de autorisatie.
Framework-wrappers en roadmap
Section titled “Framework-wrappers en roadmap”Bovenop de drie basis-SDK’s zijn er kant-en-klare integraties voor specifieke stacks:
@astroway/react: hooks voor React-appsastroway/sdk-symfony: bundle voor Symfonyastroway/sdk-laravel: pakket voor Laravel
In ontwikkeling, maar nog niet gepubliceerd: Go, Ruby en Rust. Hun pagina’s staan al in de SDK-catalogus met een preview van het installatiecommando; zodra het pakket in de registry verschijnt, verandert de status naar “beschikbaar”.
Aan de slag
Section titled “Aan de slag”- Een sleutel via dashboard/sign-up: 10 000 credits per maand gratis
- Installeer de SDK in jouw taal (commando’s hierboven)
- Eerste aanroep: de geboortehoroscoop uit de snippet hierboven, met je eigen sleutel in
ASTROWAY_API_KEY
Het volledige overzicht van SDK’s met voorbeelden voor elk staat op de pagina SDK.
Posities tot op de boogseconde in 4 regels code.
Gratis sleutel zonder kaart. 5.000 calls per maand tot de eerste betaling.