شروع سریع HAPI v3
HAPI v3 یک REST API تمیز و منبعمحور برای پرواز، هتل و تفریحات است. یک بار با اعتبارنامهٔ کلاینت خود احراز هویت میکنید، یک توکن دسترسی از نوع Bearer میگیرید و آن را همراه هر درخواست میفرستید.
همهٔ اندپوینتها زیر یک آدرس پایه قرار دارند:
https://api.simorghapi.com/v3/HAPI
هر دو محیط آدرس پایهٔ یکسانی دارند. اینکه درخواست شما به سندباکس میرود یا به موجودی واقعی، با اعتبارنامهای که استفاده میکنید تعیین میشود، نه با آدرس سرور. اعتبارنامههای تست با cid_test_ و اعتبارنامههای عملیاتی با cid_live_ شروع میشوند.
۱. اعتبارنامههایتان را بگیرید#
حساب شما یک کلاینت OAuth2 دارد:
| مقدار | نمونه | توضیح |
|---|---|---|
client_id | cid_test_9f3c81d24a5b4c6d9e0f1a2b | شناسهٔ عمومی کلاینت شما. |
client_secret | sk_test_… | کلید محرمانه. آن را فقط سمت سرور نگه دارید؛ فقط یک بار نمایش داده میشود. |
۲. توکن دسترسی بگیرید#
با گرنت client-credentials، اعتبارنامهها را با یک توکن Bearer کوتاهعمر عوض کنید.
curl -X POST https://api.simorghapi.com/v3/HAPI/auth/tokens \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "cid_test_9f3c81d24a5b4c6d9e0f1a2b",
"client_secret": "sk_test_your_secret"
}'const res = await fetch("https://api.simorghapi.com/v3/HAPI/auth/tokens", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
grant_type: "client_credentials",
client_id: "cid_test_9f3c81d24a5b4c6d9e0f1a2b",
client_secret: "sk_test_your_secret"
})
});
const { access_token } = await res.json();import requests
res = requests.post(
"https://api.simorghapi.com/v3/HAPI/auth/tokens",
json={
"grant_type": "client_credentials",
"client_id": "cid_test_9f3c81d24a5b4c6d9e0f1a2b",
"client_secret": "sk_test_your_secret",
},
)
access_token = res.json()["access_token"]پاسخ شامل توکن و مدت اعتبار آن است:
{
"access_token": "hat_test_OJ5zqfaOpqsd9NmDisioHBQr1A4UTu56…",
"token_type": "Bearer",
"expires_in": 3600,
"expires_at": "2026-08-27T17:36:36+00:00",
"scope": "flights:read flights:write hotels:read hotels:write activities:read activities:write wallet:read",
"environment": "test"
}۳. یک درخواست احرازشده بفرستید#
توکن را بهصورت Bearer در هدر Authorization قرار دهید. همهٔ اندپوینتها بهجز اندپوینت دریافت توکن به آن نیاز دارند. در این مثال توکن را بررسی (introspect) میکنیم تا ببینیم به چه کسی تعلق دارد:
curl https://api.simorghapi.com/v3/HAPI/auth/introspect \ -H "Authorization: Bearer $ACCESS_TOKEN"
{
"active": true,
"client_id": "cid_test_9f3c81d24a5b4c6d9e0f1a2b",
"environment": "test",
"office": { "id": "off_2", "name": "Your Office (sandbox)" },
"scopes": ["flights:read", "flights:write", "wallet:read"],
"token_type": "Bearer",
"expires_at": "2026-08-27T17:36:36+00:00"
}401 expired_token برمیگردانند؛ توکن تازه بگیرید و درخواست را دوباره بفرستید. بهجای ساختن توکن برای هر درخواست، آن را کش کنید و تا نزدیک انقضا دوباره به کار ببرید.
قدمهای بعدی#
حالا الگویی را که همهٔ اندپوینتها از آن پیروی میکنند میشناسید: توکن بگیرید و آن را بهصورت Bearer بفرستید. از اینجا:
- مرجع احراز هویت را برای اسکوپها، محیطها و جزئیات توکن بخوانید.
- نگاهی به قراردادها بیندازید تا شناسهها، مبالغ و زمانها غافلگیرتان نکنند.
- شکل خطاها را در مرجع خطاها ببینید.
- ساخت را با API پرواز شروع کنید.