API에 접근하는 방법은 curl 또는 fetch를 사용할 수 있습니다. 계약은 간단하고, 하나의 헤더 X-Api-Key만 있으면 JSON으로 데이터를 주고받을 수 있습니다. 그러나 엔드포인트가 많고 요청/응답의 필드가 많을 경우, 자동 완성 기능이 있는 클라이언트를 사용하면 시간을 절약할 수 있습니다.
따라서, 우리는 동일한 OpenAPI 3.1 계약에서 생성된 3개의 공식 SDK를 제공합니다.
# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer 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 } envelopeconsole.log(chart.data.houses.ascendant); // 212.0952574979425Python - 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에 대한 래퍼:
<?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'];모두 동일한 것
섹션 제목: “모두 동일한 것”세 가지 언어가 다르지만 동일한 보장을 제공합니다:
- 모든 엔드포인트의 요청/응답 타입. 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가 레지스트리에 등록되면, 상태가 변경됩니다.
- 키를 dashboard/sign-up에서 받습니다. (10,000 크레딧/월 무료)
- SDK를 자신의 언어로 설치합니다. (위의 명령어)
- 첫 번째 요청 - 위의 예제에서 제공하는 날자 카드, 자신의 키를
ASTROWAY_API_KEY에 전달합니다.
SDK의 목록과 예제는 SDK에 있습니다.
Solar Fire에 사용된 것과 동일한 Swiss Ephemeris - 단 4줄의 코드로.
카드 없이 무료 키. 첫 결제 전까지 월 5,000 API 호출.