Puedes usar la API con curl o fetch directamente - el contrato es simple, con un solo encabezado X-Api-Key, JSON de ida y vuelta. Pero cuando hay más de 758 endpoints y los cuerpos de las solicitudes tienen docenas de campos, un cliente tipizado ahorra horas: autocompletado de rutas, tipos de solicitud y respuesta, reintentos automáticos en redes inestables.
Por eso tenemos tres SDK oficiales, generados desde el mismo contrato OpenAPI 3.1.
Instalación
Sección titulada «Instalación»# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkEjemplo mínimo
Sección titulada «Ejemplo mínimo»La misma llamada de carta natal en tres lenguajes.
TypeScript - un envoltorio ligero sobre openapi-fetch (~6 KB en tiempo de ejecución), con autocompletado de rutas:
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 síncrono y AsyncAstroway asíncrono con la misma interfaz, sobre 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 - sobre Guzzle 7 y 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'];Qué tienen en común los tres
Sección titulada «Qué tienen en común los tres»Tres lenguajes diferentes, pero las mismas garantías - porque los tres se generan desde el mismo contrato OpenAPI:
- Tipos de solicitud y respuesta para todos los endpoints. TS ofrece autocompletado de rutas y cuerpos tipizados; Python - un paquete tipizado PEP 561; PHP - firmas tipizadas. El IDE sugiere campos, no la documentación en una pestaña vecina.
- Reintentos integrados con backoff para
408,409,429,5xx. Un fallo de red temporal o rate-limit no rompe tu código - el cliente reintentará automáticamente. - Jerarquía de errores al estilo Stainless. Los errores están tipizados por clases, no un string en
catch. Capturas un tipo específico -RateLimitError,ValidationError- y lo manejas de forma puntual. - OpenAPI 3.1 como fuente. Añades un endpoint a la API - aparece en el SDK en el próximo lanzamiento, sin duplicación manual.
- OIDC + SLSA-provenance en publicación: TS y PHP - a través de Trusted Publisher / auto-mirror, Python - Trusted Publisher OIDC en PyPI. La cadena de suministro verificable.
La URL base en todos es https://api.astroway.info/v1/, la clave se pasa en el encabezado X-Api-Key. La misma clave que para las llamadas HTTP crudas; el SDK no cambia nada en la autorización.
Envolturas de frameworks y hoja de ruta
Sección titulada «Envolturas de frameworks y hoja de ruta»Sobre los tres SDK base hay integraciones listas para stacks específicos:
@astroway/react- hooks para aplicaciones Reactastroway/sdk-symfony- bundle para Symfonyastroway/sdk-laravel- paquete para Laravel
En desarrollo pero aún no publicados - Go, Ruby y Rust. Sus páginas ya están en el catálogo de SDK con vista previa de comandos de instalación; cuando el paquete se publica en el registro, el estado cambia a “disponible”.
Empezar
Sección titulada «Empezar»- Obtén tu clave en dashboard/sign-up - 10 000 créditos al mes gratis
- Instala el SDK en tu lenguaje (comandos arriba)
- Primera llamada - carta natal con el fragmento de arriba, reemplaza tu clave en
ASTROWAY_API_KEY
La lista completa de SDK con ejemplos para cada uno está en la página SDK.
El mismo Swiss Ephemeris que en Solar Fire - en 4 líneas de código.
Clave gratuita sin tarjeta. 5 000 llamadas al mes antes del primer pago.