یُمكنك الوصول إلى API باستخدام curl أو fetch - العقدة بسيط، رأس واحد X-Api-Key، JSON إلى و من. ولكن عندما يكون هناك أكثر من 758، وطلبات JSON لها عشرات من الحقول، فإن المُستخدمون الاقتصاديون يُنقذون ساعات العمل: تتميز الطرق، أنواع الطلبات والردود، تكرار تلقائي على شبكة غير مستقرة.
لذلك لدينا ثلاث SDK رسمية، تم إنشاؤها من نفس العقدة OpenAPI 3.1.
# TypeScript / JavaScriptnpm install @astroway/sdk
# Pythonpip install astroway
# PHPcomposer require astroway/sdkمثال مُثَل
Section titled “مثال مُثَل”نفس الطلب ثلاث لغات.
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 - سينكرون 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:
<?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'];ما يُشتركان في كل ثلاثة
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- حُبكات لاستخدامات Reactastroway/sdk-symfony- باندل لاستخدامات Symfonyastroway/sdk-laravel- باندل لاستخدامات Laravel
في العمل، ولكن لا يُعلن عنها بعد - Go، Ruby و Rust. صفحاتهم موجودة بالفعل في الملف SDK مع تثبيت-التحديثات؛ عندما يُخرج الباكيت في الملفات، يُغير الحالة إلى «متاح».
بدء العمل
Section titled “بدء العمل”- المفتاح على dashboard/sign-up - 10,000 كريديات شهريا بدون تكلفة
- تثبيت SDK لغة المُستخدم (أوامر أعلاه)
- أول طلب - خريطة من السنيبيت أعلاه، وضع مفتاحك في
ASTROWAY_API_KEY
قائمة SDK بالتفاصيل و أمثلة - على صفحة SDK.
نفس Swiss Ephemeris الموجود في Solar Fire - في 4 أسطر من الكود.
مفتاح مجاني بدون بطاقة. 5000 استدعاء شهرياً حتى الدفعة الأولى.