Můžete přistupovat k API pomocí curl nebo fetch - kontrakt je jednoduchý, jeden hlavičkový X-Api-Key, JSON tam a zpět. Ale když máte více než 758 endpointů a požadavky mají desetky polí, typizovaný klient ušetří hodiny: automatické doplnění cest, typy požadavků a odpovědí, automatické opakování na nestabilní síti.
Proto máme tři oficiální SDK, generované z jednoho OpenAPI 3.1 kontraktu.
Instalace
Sekce “Instalace”# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkMinimální příklad
Sekce “Minimální příklad”Stejné volání natální mapy třemi jazyky.
TypeScript - tenká obálka nad openapi-fetch (~6 KB runtime), s automatickým doplněním cest:
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 - synchronní Astroway a asynchronní AsyncAstroway s identickou povrchem, na 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 - na povrchu Guzzle 7 a 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'];Co mají společného všechny tři
Sekce “Co mají společného všechny tři”Tři různé jazyky, ale stejné záruky - protože všechny tři generují z jednoho OpenAPI kontraktu:
- Typy požadavků a odpovědí pro všechny endpointy. TS nabízí automatické doplnění cest a typizované těla; Python - PEP 561 typizovaný balíček; PHP - typizované signatury. IDE doporučuje pole, nikoli dokumentace v sousední kartě.
- Vyrovnávací mechanismus s backoff na
408,409,429,5xx. Momentární síťová porucha nebo omezení rychlosti nezpůsobí, že váš kód nefunguje - klient sám se opakuje. - Stainless-style hierarchie chyb. Chyby jsou typizovány podle tříd, nikoli řetězec v
catch. Chytíte konkrétní typ -RateLimitError,ValidationError- a ošetřete přesně. - OpenAPI 3.1 jako zdroj. Přidáte endpoint do API - objeví se v SDK na další verzi, bez ruční duplikace.
- OIDC + SLSA-provence na publikacích: TS a PHP - prostřednictvím Trusted Publisher / auto-mirror, Python - Trusted Publisher OIDC na PyPI. Řetězec dodání je ověřen.
Základní URL v všech - https://api.astroway.info/v1/, klíč je předán hlavičkovým X-Api-Key. Stejné klíč, který pro sírové HTTP požadavky; SDK nic nezmění v autentizaci.
Framework-obaly a roadmap
Sekce “Framework-obaly a roadmap”Na povrchu tří základních SDK jsou připravené integrace pro konkrétní stacky:
@astroway/react- huki pro React aplikaceastroway/sdk-symfony- balíček pro Symfonyastroway/sdk-laravel- balíček pro Laravel
V práci, ale ještě neveřejné - Go, Ruby a Rust. Jejich stránky již jsou v katalogu SDK s předem nastavenými instalacemi; když je balíček vystupuje do registry, status se změní na „dostupný“.
Začít
Sekce “Začít”- Klíč na dashboard/sign-up - 10 000 kreditů měsíčně zdarma
- Nainstalujte SDK vaším jazykem (příkazy výše)
- První volání - natální mapa s snípkem výše, vložte svůj klíč do
ASTROWAY_API_KEY
Plný seznam SDK s příklady pro každý - na stránce SDK.
Stejný Swiss Ephemeris jako v Solar Fire - ve 4 řádcích kódu.
Zdarma klíč bez karty. 5 000 volání za měsíc do první platby.