AstroWay/api v2.190.0 · it
tutti i sistemi sono operativi

Tre SDK ufficiali: TypeScript, Python, PHP invece di curl grezzo

HTTP grezzo funziona, ma un client tipizzato risparmia ore: autocompletamento dei percorsi, tipi di richiesta e risposta, retry integrato per 408/409/429/5xx e gerarchia di errori allo stile Stainless. Analizziamo i tre SDK ufficiali - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - e come sono generati da un unico contratto OpenAPI.

È possibile utilizzare l’API attraverso curl o fetch - il contratto è semplice, un solo header X-Api-Key, JSON a entrambi i sensi. Tuttavia, quando si hanno più di 758 endpoint, e i corpi delle richieste hanno una decina di campi, un client tipizzato risparmia ore: autocompletamento dei percorsi, tipi di richiesta e risposta, ripetizioni automatiche in una rete instabile.

Per questo motivo, abbiamo tre SDK ufficiali, generate dallo stesso contratto OpenAPI 3.1.

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

Lo stesso richiamo della carta natale in tre lingue.

TypeScript - sottile involucro sopra openapi-fetch (~6 KB runtime), con autocompletamento dei percorsi:

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 - sincrono Astroway e asincrono AsyncAstroway con superficie identica, sopra 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 - sopra Guzzle 7 e 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'];

Tre lingue diverse, ma garanzie identiche - perché tutti e tre sono generati dallo stesso contratto OpenAPI:

  • Tipi di richiesta e risposta per tutti gli endpoint. TS fornisce autocompletamento dei percorsi e corpi tipizzati; Python - PEP 561 typed-pacchetto; PHP - tipi di segnatura. L’IDE suggerisce i campi, e non la documentazione nella finestra accanto.
  • Ripetizioni automatiche con backoff su 408, 409, 429, 5xx. Un temporaneo guasto di rete o un limite di velocità non farà cadere il tuo codice - il client ripete da solo.
  • Stile Stainless e gerarchia degli errori. Gli errori sono tipizzati per classe, e non una stringa in catch. Capi di richiamo specifico - RateLimitError, ValidationError - e trattano con precisione.
  • OpenAPI 3.1 come fonte. Aggiungi un endpoint all’API - compare nello stesso SDK al prossimo rilascio, senza duplicazione manuale.
  • OIDC + SLSA-provenienza per le pubblicazioni: TS e PHP - attraverso Trusted Publisher / auto-mirror, Python - Trusted Publisher OIDC su PyPI. La catena di fornitura è verificata.

Base URL in tutti - https://api.astroway.info/v1/, chiave trasmessa attraverso il header X-Api-Key. Lo stesso chiave che per i richiami HTTP sincroni; lo SDK non modifica l’autenticazione.

Sopra i tre SDK base ci sono integrazioni pronte per stack specifici:

  • @astroway/react - hook per React-applicazioni
  • astroway/sdk-symfony - bundle per Symfony
  • astroway/sdk-laravel - pacchetto per Laravel

In lavorazione, ma ancora non pubblicati - Go, Ruby e Rust. Le loro pagine sono già nel catalogo SDK con la previsione dell’installazione; quando il pacchetto esce nel registro, lo stato cambia a “disponibile”.

  1. Chiave su dashboard/sign-up - 10.000 crediti al mese gratuitamente
  2. Installa lo SDK nella tua lingua (comandi sopra)
  3. Primo richiamo - carta natale con snippet sopra, sostituisci la tua chiave in ASTROWAY_API_KEY

Elenco completo di SDK con esempi per ciascuno - sulla pagina SDK.

MakSeong · AstroWay

Sto sviluppando l'API AstroWay: sto avvolgendo Swiss Ephemeris in un REST pulito e scrivo sui dettagli noiosi che sono in realtà importanti.

// costruisci su questo

Lo stesso Swiss Ephemeris di Solar Fire - in 4 righe di codice.

Chiave API gratuita senza carta. 5 000 chiamate al mese fino al primo pagamento.

Altro dal blog tutti gli articoli →

Ephemeris 2026-07-19

Come manteniamo l'accuratezza sotto controllo: CI contro swetest e NASA

L'accuratezza dell'astra-API si deteriora facilmente da un refactoring degli ephemeridi. Analizziamo la protezione: un nucleo Swiss Ephemeris per browser e server, centinaia di snapshot congelati su mappe di riferimento e triangolazione di ogni PR contro swetest CGI, Kerykeion, Prokerala e catalogo delle ombre di 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.