Po potrivirea API prin curl sau fetch este posibilă - contract simplu, un singur header X-Api-Key, JSON în ambele direcții. Dar atunci când există mai mult de 758 endpointuri și cererile au câteva câmpuri, un client tipizat economisește ore: autocompletarea căilor, tipurile cererii și răspunsului, reînnoirea automată pe o rețea instabilă.
Prin urmare, avem trei SDK-uri oficiale, generate dintr-un singur contract OpenAPI 3.1.
Instalare
Section titled “Instalare”# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkExemplu minim
Section titled “Exemplu minim”Același apel la hartă în trei limbi.
TypeScript - o capă de protecție subțire peste openapi-fetch (~6 KB runtime), cu autocompletare a căilor:
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 - Astroway sincron și AsyncAstroway asincron, cu o suprafață identică, peste 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 - peste Guzzle 7 și 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'];Ce este comun în toate cele trei
Section titled “Ce este comun în toate cele trei”Cele trei limbi, dar garanții identice - deoarece toate trei sunt generate din acelasi contract OpenAPI:
- Tipurile cererii și răspunsului pentru toți endpointuri. TS oferă autocompletare a căilor și tipizarea cererilor; Python - PEP 561 tipizare a pachetului; PHP - tipizarea semnăturilor. IDE sugerează câmpurile, iar nu documentația într-o fereastră vecină.
- Retry cu backoff pe
408,409,429,5xx. O întârziere temporară sau o limitare a rate-ului nu afectează codul tău - clientul se reînnoiește singur. - Stainless-style ierarhie a erorilor. Erorile sunt tipizate după clase, iar nu o linie în
catch. Câștigiți un anume tip -RateLimitError,ValidationError- și prelucrați-l cu precizie. - OpenAPI 3.1 ca sursă. Adăugați un endpoint în API - acesta apare în SDK-ul următor, fără dublarea manuală.
- OIDC + SLSA-proveniență pe publicarea: TS și PHP - prin Editorul Împuternicit / auto-miror, Python - Editorul Împuternicit OIDC pe PyPI. Lanțul de furnizare este verificat.
Base URL în toate - https://api.astroway.info/v1/, cheia transmisă ca header X-Api-Key. Același cheie, care și pentru apelurile HTTP directe; SDK-ul nu schimbă nimic în autentificare.
Cadru de obvolutare și hartă
Section titled “Cadru de obvolutare și hartă”Peste cele trei SDK-uri de bază există integrații gata pentru anumite stive:
@astroway/react- hook-uri pentru aplicații Reactastroway/sdk-symfony- pachet pentru Symfonyastroway/sdk-laravel- pachet pentru Laravel
În lucru, dar încă nu publicate - Go, Ruby și Rust. Puteți vedea deja paginile lor în catalogul SDK cu pre-priviu la comanda de instalare; când pachetul iese în registru, statutul se schimbă pe “disponibil”.
Începeți
Section titled “Începeți”- Cheia pe dashboard/sign-up - 10 000 de credite pe lună gratuit
- Instalați SDK-ul în limba dvs. (comanda de mai sus)
- Primul apel - hartă cu snippet-ul de mai sus, înlocuiți cheia cu
ASTROWAY_API_KEY
Puteți vedea lista completă de SDK-uri cu exemple pentru fiecare - pe pagina SDK.
Același Swiss Ephemeris ca în Solar Fire - în 4 linii de cod.
Cheie gratuită fără card. 5.000 de apeluri pe lună până la prima plată.