AstroWay/api v2.190.0 · id
semua sistem normal

Tiga resmi SDK: TypeScript, Python, PHP alih-alih curl mentah

HTTP mentah bekerja, tetapi klien yang terjenis menghemat jam: otomatis melengkapi jalur, jenis permintaan dan respons, retry bawaan untuk 408/409/429/5xx dan hierarki kesalahan Stainless-style. Kami jelaskan tiga resmi SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - dan bagaimana mereka dihasilkan dari satu kontrak OpenAPI.

API dapat diakses melalui curl atau fetch mentah - kontraknya sederhana, hanya satu header X-Api-Key, JSON masuk dan keluar. Namun ketika ada lebih dari 758 endpoint dan tubuh permintaan memiliki puluhan bidang, klien yang ter-tipe menghemat jam: otomatis melengkapi path, tipe permintaan dan respons, otomatis retry pada jaringan yang tidak stabil.

Oleh karena itu, kami memiliki tiga SDK resmi, yang dihasilkan dari satu kontrak OpenAPI 3.1.

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

Pemanggilan yang sama untuk natal chart dalam tiga bahasa.

TypeScript - wrapper tipis di atas openapi-fetch (~6 KB runtime), dengan otomatis melengkapi path:

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 - sinkron Astroway dan asinkron AsyncAstroway dengan permukaan identik, di atas 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 - di atas Guzzle 7 dan 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'];

Tiga bahasa berbeda, tapi jaminan yang sama - karena ketiganya dihasilkan dari kontrak OpenAPI yang sama:

  • Tipe permintaan dan respons untuk semua endpoint. TS memberikan otomatis melengkapi path dan tubuh ter-tipe; Python - PEP 561 typed-package; PHP - tipe tanda tangan. IDE menyarankan bidang, bukan dokumentasi di tab berikutnya.
  • Retry bawaan dengan backoff pada 408, 409, 429, 5xx. Kegagalan jaringan sementara atau rate-limit tidak merusak kodemu - klien mengulangi sendiri.
  • Hierarki error Stainless-style. Error ter-tipe berdasarkan kelas, bukan string di catch. Menangkap tipe spesifik - RateLimitError, ValidationError - dan menanganinya secara spesifik.
  • OpenAPI 3.1 sebagai sumber. Menambahkan endpoint ke API - muncul di SDK di rilis berikutnya, tanpa duplikasi manual.
  • OIDC + SLSA-provenance pada publikasi: TS dan PHP - melalui Trusted Publisher / auto-mirror, Python - Trusted Publisher OIDC di PyPI. Rantai pasokan dapat diverifikasi.

Base URL di semua - https://api.astroway.info/v1/, kunci diteruskan melalui header X-Api-Key. Kunci yang sama untuk panggilan HTTP mentah; SDK tidak mengubah apa pun dalam otorisasi.

Di atas tiga SDK dasar ada integrasi siap pakai untuk stack tertentu:

  • @astroway/react - hooks untuk aplikasi React
  • astroway/sdk-symfony - bundle untuk Symfony
  • astroway/sdk-laravel - package untuk Laravel

Dalam pengerjaan, tetapi belum dipublikasikan - Go, Ruby, dan Rust. Halaman mereka sudah ada di katalog SDK dengan preview perintah instalasi; ketika paket dirilis di registry, status berubah menjadi ‘tersedia’.

  1. Kunci di dashboard/sign-up - 10 000 kredit per bulan gratis
  2. Pasang SDK untuk bahasamu (perintah di atas)
  3. Pemanggilan pertama - natal chart dari snippet di atas, ganti kuncimu di ASTROWAY_API_KEY

Daftar lengkap SDK dengan contoh untuk masing-masing - di halaman SDK.

MakSeong · AstroWay

Aku membuat AstroWay API: membungkus Swiss Ephemeris ke dalam REST murni dan menulis tentang detail membosankan yang sebenarnya penting.

// bangun di atas ini

Swiss Ephemeris yang sama dengan Solar Fire - dalam 4 baris kode.

Kunci gratis tanpa kartu. 5.000 panggilan per bulan sebelum pembayaran pertama.

Lebih dari blog semua tulisan →

Ephemeris 2026-07-19

Bagaimana Kami Mengawasi Akurasi: CI vs swetest dan NASA

Akurasi dalam API Astro dapat menurun dengan mudah dari satu refaktor ephemeris. Kami memecahkan perlindungan: satu inti Swiss Ephemeris di browser dan server, ratusan snapshot beku pada peta standar dan triangulasi setiap PR terhadap swetest CGI, Kerykeion, Prokerala, dan katalog kegelapan 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.