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.
Installatie
Section titled “Installatie”# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkMinimale voorbeeld
Section titled “Minimale voorbeeld”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 } envelopeconsole.log(chart.data.houses.ascendant); // 212.0952574979425Python - 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:
<?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 allemaal gemeen hebben
Section titled “Wat ze allemaal gemeen hebben”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.
Framework-omhulsels en roadmap
Section titled “Framework-omhulsels en roadmap”Over de drie basis-SDK’s zijn er klaarstaande integraties voor specifieke stacks:
@astroway/react- hooks voor React-toepassingenastroway/sdk-symfony- bundel voor Symfonyastroway/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”.
Beginnen
Section titled “Beginnen”- Sleutel op dashboard/sign-up - 10 000 credits per maand gratis
- Installeer de SDK in je taal (commando’s hierboven)
- 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.
Dezelfde Swiss Ephemeris als in Solar Fire - in 4 regels code.
Gratis sleutel zonder kaart. 5.000 calls per maand tot de eerste betaling.