AstroWay/api v2.190.0 · ar
جميع الأنظمة تعمل بشكل طبيعي

ثلاثة SDK رسمية: TypeScript, Python, PHP بدلاً من curl الخام

HTTP الخام يعمل، لكن العميل المطبّق يوفّر ساعات: إكمال تلقائي للمسارات، أنواع الطلب والاستجابة، إعادة محاولة مدمجة على 408/409/429/5xx، وتسلسل أخطاء بنمط Stainless. نستعرض ثلاثة SDK رسمية - @astroway/sdk (npm)، astroway (PyPI)، astroway/sdk (Packagist) - وكيف تم توليدها من عقد OpenAPI واحد.

یُمكنك الوصول إلى API باستخدام curl أو fetch - العقدة بسيط، رأس واحد X-Api-Key، JSON إلى و من. ولكن عندما يكون هناك أكثر من 758، وطلبات JSON لها عشرات من الحقول، فإن المُستخدمون الاقتصاديون يُنقذون ساعات العمل: تتميز الطرق، أنواع الطلبات والردود، تكرار تلقائي على شبكة غير مستقرة.

لذلك لدينا ثلاث SDK رسمية، تم إنشاؤها من نفس العقدة OpenAPI 3.1.

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 - سينكرون Astroway و غير سينكرون AsyncAstroway مع سطح مُشابه، على 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 - على 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'];

ما يُشتركان في كل ثلاثة

Section titled “ما يُشتركان في كل ثلاثة”

ثلاث لغات مختلفة، ولكن نفس الضمانات - لأن كل ثلاثة تم إنشاؤها من نفس العقدة OpenAPI:

  • أنواع الطلبات والردود لجميع الاندبوينتس. TS يُقدم تتميز الطرق و تتميز الجسم؛ Python - PEP 561 typed-باكيت؛ PHP - تتميز الحقول. IDE يُقدم تتميز الحقول، وليس وثيقة التوثيق في الملف المجاور.
  • تكرار تلقائي مع إعادة الصدأ على 408، 409، 429، 5xx. فشل شبكة مؤقت أو حظر السرعة لا يُسبب تدهور التعليمات البرمجية - المُستخدمون يُكررون تلقائيًا.
  • سلسلة الأخطاء Stainless-style. الأخطاء مُتتميزة حسب الصنف، وليس سلسلة في catch. يُقبض المُستخدمون على نوع محدد - RateLimitError، ValidationError - و يُعالجون بشكل دقيق.
  • OpenAPI 3.1 كمنبع. أضاف اندبوينت إلى API - يُظهر في SDK في الإصدار التالي، بدون تكرار يدويا.
  • OIDC + SLSA-النسب على النشرات: TS و PHP - من خلال المُستخدم المُثبت / auto-mirror، Python - OIDC المُستخدم المُثبت على PyPI. سلسلة التوريد مُثبتة.

URL الأساسية في جميع الحالات - https://api.astroway.info/v1/، المفتاح يُرسل كرأس X-Api-Key. نفس المفتاح الذي في الطلبات HTTP المُباشرة؛ SDK لا يُغير من التوثيق.

إطار التمديد و خريطة المُستخدمين

Section titled “إطار التمديد و خريطة المُستخدمين”

على ثلاثة SDK الأساسية يوجد إطارات تمديد مُختلفة:

  • @astroway/react - حُبكات لاستخدامات React
  • astroway/sdk-symfony - باندل لاستخدامات Symfony
  • astroway/sdk-laravel - باندل لاستخدامات Laravel

في العمل، ولكن لا يُعلن عنها بعد - Go، Ruby و Rust. صفحاتهم موجودة بالفعل في الملف SDK مع تثبيت-التحديثات؛ عندما يُخرج الباكيت في الملفات، يُغير الحالة إلى «متاح».

  1. المفتاح على dashboard/sign-up - 10,000 كريديات شهريا بدون تكلفة
  2. تثبيت SDK لغة المُستخدم (أوامر أعلاه)
  3. أول طلب - خريطة من السنيبيت أعلاه، وضع مفتاحك في ASTROWAY_API_KEY

قائمة SDK بالتفاصيل و أمثلة - على صفحة SDK.

MakSeong · AstroWay

أبني AstroWay API: أُغلف Swiss Ephemeris في REST نقي وأكتب عن التفاصيل المملة التي هي فعلاً مهمة.

// ابنِ عليه

نفس Swiss Ephemeris الموجود في Solar Fire - في 4 أسطر من الكود.

مفتاح مجاني بدون بطاقة. 5000 استدعاء شهرياً حتى الدفعة الأولى.

المزيد من المدونة جميع المقالات →

Ephemeris 2026-07-19

كيف نتحكم في الدقة: CI ضد swetest و NASA

الدقة في astro-API تتدهور بسهولة بسبب تعديل واحد في الإيفيميريدات. نستعرض الحماية: نواة واحدة من Swiss Ephemeris للمتصفح والخادم، مئات اللقطات المجمدة على خرائط مرجعية وتثليث كل PR ضد swetest CGI و Kerykeion و Prokerala ودليل خسوفات 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.