AstroWay/api v2.190.0 · ko
모든 시스템 정상 작동 중

세 개의 공식 SDK: TypeScript, Python, PHP, 원시 curl 대신

원시 HTTP는 작동하지만, 타이핑된 클라이언트는 시간을 절약합니다: 경로 자동 완성, 요청 및 응답 유형, 408/409/429/5xx에 대한 내장된 재시도 및 스테인리스 스타일 오류 계층 구조. 세 개의 공식 SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - 및 하나의 OpenAPI 계약에서 생성된 방법을 살펴봅니다.

API에 접근하는 방법은 curl 또는 fetch를 사용할 수 있습니다. 계약은 간단하고, 하나의 헤더 X-Api-Key만 있으면 JSON으로 데이터를 주고받을 수 있습니다. 그러나 엔드포인트가 많고 요청/응답의 필드가 많을 경우, 자동 완성 기능이 있는 클라이언트를 사용하면 시간을 절약할 수 있습니다.

따라서, 우리는 동일한 OpenAPI 3.1 계약에서 생성된 3개의 공식 SDK를 제공합니다.

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

같은 예제를 세 가지 언어로 제공합니다.

TypeScript - openapi-fetch에 대한 тон한 래퍼 (~6 KB 런타임), 자동 완성 기능:

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 - httpx에 대한 동기식 Astroway 및 비동기식 AsyncAstroway가 동일한 표면을 제공합니다:

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 - Guzzle 7 및 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'];

세 가지 언어가 다르지만 동일한 보장을 제공합니다:

  • 모든 엔드포인트의 요청/응답 타입. TS는 자동 완성 기능이 있는 경로와 타입화 된 바디를 제공합니다; Python은 PEP 561 타입화 된 패키지; PHP는 타입화 된 서명. IDE는 필드를 알려주고, 문서화된 필드에 대한 정보를 제공합니다.
  • 자동 retry with backoff 408, 409, 429, 5xx에 대한. 일시적인 네트워크 오류 또는 리소스 제한에 대한 클라이언트가 자동으로 다시 시도합니다.
  • Stainless-style error hierarchy. 오류는 클래스별로 타입화되어 있으며, catch 블록에서 특정 오류를 잡을 수 있습니다. RateLimitError, ValidationError와 같은 오류를 잡을 수 있습니다.
  • OpenAPI 3.1 as source. API에 새로운 엔드포인트를 추가하면, SDK에서 자동으로 다음 릴리즈에서 엔드포인트가 추가됩니다.
  • OIDC + SLSA-provenance. 공개된 SDK는 Trusted Publisher/자동 복제, OIDC에 대한 PyPI에 대한 Trusted Publisher입니다. 제공 체인에 대한 보증이 있습니다.

Base URL은 https://api.astroway.info/v1/이며, 키는 헤더 X-Api-Key에 전달됩니다. 같은 키를 사용하면, HTTP 요청과 SDK에서 사용하는 키가 같습니다.

기본 SDK의 위에, 특정 스택에 대한 통합이 있습니다:

  • @astroway/react - React 애플리케이션에 대한 훌키
  • astroway/sdk-symfony - Symfony에 대한 패키지
  • astroway/sdk-laravel - Laravel에 대한 패키지

Go, Ruby, Rust에 대한 SDK는 개발 중이며, 아직 공개되지 않았습니다. SDK의 페이지는 이미 SDK의 목록에 있습니다. SDK가 레지스트리에 등록되면, 상태가 변경됩니다.

  1. 키를 dashboard/sign-up에서 받습니다. (10,000 크레딧/월 무료)
  2. SDK를 자신의 언어로 설치합니다. (위의 명령어)
  3. 첫 번째 요청 - 위의 예제에서 제공하는 날자 카드, 자신의 키를 ASTROWAY_API_KEY에 전달합니다.

SDK의 목록과 예제는 SDK에 있습니다.

MakSeong · AstroWay

AstroWay API를 만들고 있어: Swiss Ephemeris를 순수 REST로 감싸고, 실제로 중요한 지루한 세부사항을 기록합니다.

// 이걸로 빌드해

Solar Fire에 사용된 것과 동일한 Swiss Ephemeris - 단 4줄의 코드로.

카드 없이 무료 키. 첫 결제 전까지 월 5,000 API 호출.

더 많은 블로그 글 모든 글 보기 →

Ephemeris 2026-07-19

우리가 정확성을 제어하는 방법: CI vs swetest 및 NASA

아스트로-API의 정확성은 하나의 에프메르에디드 리팩토링으로 쉽게 저하됩니다. CI의 보호를 분석합니다: 브라우저 및 서버에 하나의 스위스 에프메르에디스 핵심, 수백의 스냅샷이 동결된 표준 맵에, swetest CGI, Kerykeion, Prokerala 및 NASA의 어두움 카탈로그에 대한 각 PR의 삼각화.

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.