AstroWay/api v2.190.0 · ro
toate sistemele sunt în stare normală

Trei SDK-uri oficiale: TypeScript, Python, PHP în loc de curl brut

HTTP brut funcționează, dar un client tipizat economisește ore: autocompletare căi, tipuri de cerere și răspuns, retry încorporat pentru 408/409/429/5xx și ierarhie de erori în stil Stainless. Explorăm cele trei SDK-uri oficiale - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - și cum sunt generate dintr-un contract OpenAPI unic.

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.

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

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 } envelope
console.log(chart.data.houses.ascendant); // 212.0952574979425

Python - 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:

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

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.

Peste cele trei SDK-uri de bază există integrații gata pentru anumite stive:

  • @astroway/react - hook-uri pentru aplicații React
  • astroway/sdk-symfony - pachet pentru Symfony
  • astroway/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”.

  1. Cheia pe dashboard/sign-up - 10 000 de credite pe lună gratuit
  2. Instalați SDK-ul în limba dvs. (comanda de mai sus)
  3. 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.

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.

// construiește pe asta

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ă.

Mai multe din blog toate articolele →

Ephemeris 2026-07-19

Cum păstrăm precizia sub control: CI împotriva swetest și NASA

Precizia în API-ul nostru este ușor degradată de un singur refactoring al ephemeridelor. Analizăm protecția: un singur nucleu Swiss Ephemeris pe browser și server, sute de snapshot-uri congelate pe hărțile de referință și triangulația fiecărui PR împotriva swetest CGI, Kerykeion, Prokerala și catalogul umbrelor NASA.

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.