AstroWay/api v2.190.0 · pt
todos os sistemas normais

Três SDKs oficiais: TypeScript, Python, PHP em vez de curl bruto

HTTP bruto funciona, mas um cliente tipificado economiza horas: autocompletamento de caminhos, tipos de pedido e resposta, retry incorporado para 408/409/429/5xx e hierarquia de erros no estilo Stainless. Vamos analisar os três SDKs oficiais - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - e como são gerados a partir do mesmo contrato OpenAPI.

Você pode acessar a API usando curl ou fetch, um contrato simples, um único cabeçalho X-Api-Key, JSON para lá e para cá. Mas quando há mais de 758 endpoints e os corpos das solicitações têm uma dúzia de campos, um cliente tipizado economiza horas: auto-completar caminhos, tipos de solicitação e resposta, e repetir automaticamente em uma rede instável.

Por isso, temos três SDK oficiais, gerados a partir do mesmo contrato OpenAPI 3.1.

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

O mesmo chamado para a carta nativa em três idiomas.

TypeScript - uma camada fina sobre openapi-fetch (~6 KB rantom), com auto-completar caminhos:

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 - síncrono Astroway e assíncrono AsyncAstroway com a mesma superfície, 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 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'];

Três idiomas diferentes, mas garantias idênticas - pois todos geram a partir do mesmo contrato OpenAPI:

  • Tipos de solicitação e resposta para todos os endpoints. TS oferece auto-completar caminhos e corpos tipizados; Python - PEP 561 pacote tipado; PHP - assinaturas tipadas. O IDE sugere campos, e não a documentação na janela adjacente.
  • Repetição com backoff em 408, 409, 429, 5xx. Um temporário erro de rede ou limite de taxa não faz com que o seu código falhe - o cliente se repete sozinho.
  • Hierarquia de erros Stainless-style. Erros tipados por classe, e não uma linha em catch. Você captura o tipo específico - RateLimitError, ValidationError - e processa com precisão.
  • OpenAPI 3.1 como fonte. Adicione um endpoint ao API - ele aparece no SDK no próximo lançamento, sem duplicar manualmente.
  • OIDC + SLSA-provenance em publicações: TS e PHP - através do Publicador Confiança / auto-mirror, Python - Publicador Confiança OIDC no PyPI. O fluxo de fornecimento é verificado.

A URL base em todos é https://api.astroway.info/v1/, e a chave é passada como cabeçalho X-Api-Key. O mesmo chave que para os chamados HTTP diretos; o SDK não altera a autenticação.

Acima das três SDK básicas, há integrações prontas para stacks específicos:

  • @astroway/react - hooks para aplicativos React
  • astroway/sdk-symfony - pacote para Symfony
  • astroway/sdk-laravel - pacote para Laravel

Em desenvolvimento, mas ainda não publicados - Go, Ruby e Rust. Suas páginas já estão no catálogo SDK com a instalação prévia; quando o pacote é lançado no registro, o status muda para “disponível”.

  1. Chave em dashboard/sign-up - 10 000 créditos por mês sem custo
  2. Instale o SDK em sua linguagem (comandos acima)
  3. O primeiro chamado - a carta nativa com o snippet acima, substitua sua chave em ASTROWAY_API_KEY

O lista completa de SDK com exemplos para cada - na página SDK.

MakSeong · AstroWay

Crio a API AstroWay: envolvo o Swiss Ephemeris em REST puro e escrevo sobre os detalhes aborrecidos que realmente importam.

// construa sobre isso

O mesmo Swiss Ephemeris que no Solar Fire - em 4 linhas de código.

Chave gratuita sem cartão. 5 000 chamadas por mês até o primeiro pagamento.

Mais do blog todas as postagens →

Ephemeris 2026-07-19

Como mantemos a precisão sob controle: CI versus swetest e NASA

A precisão da API astronômica pode degradar-se facilmente após uma refatorização dos ephémérides. Desvendamos a defesa: um núcleo Swiss Ephemeris no navegador e servidor, centenas de snapshots congelados em cartas de referência e triângulos de cada PR contra swetest CGI, Kerykeion, Prokerala e o catálogo de eclipses da 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.