دریافت استریمی نتایج جستوجو
بعضی منابع زودتر از بقیه پاسخ میدهند. جستوجوی استریمی یک اتصال SSE (رویدادهای ارسالی از سرور) باز میکند و با پاسخ هر منبع، پیشنهادها را برایتان میفرستد؛ بنابراین میتوانید ارزانترین نتایج را در یک ثانیه نمایش دهید و منتظر کندترین تأمینکننده نمانید.
شروع استریم#
POST/v3/HAPI/flights/searches/stream
به اسکوپ flights:read نیاز دارد. بدنهٔ درخواست دقیقاً مثل جستوجوی معمولی (بلاکینگ) است. پاسخ از نوع text/event-stream است.
curl -N -X POST https://api.simorghapi.com/v3/HAPI/flights/searches/stream \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"slices": [
{ "origin": "IST", "destination": "DXB", "departure_date": "2026-11-14" }
],
"passengers": { "adults": 1 }
}'رویدادها#
| رویداد | محتوا |
|---|---|
offers | یک flight_offer_batch: کل سبد فعلی پیشنهادها. |
done | خلاصهٔ flight_search همراه با offer_count نهایی. |
error | استریم با خطا متوقف شد؛ شامل یک شیء خطای استاندارد است. |
event: offers
data: {"object":"flight_offer_batch","replace":true,"offer_count":42,"offers":[ /* … */ ]}
event: offers
data: {"object":"flight_offer_batch","replace":true,"offer_count":88,"offers":[ /* … */ ]}
event: done
data: {"object":"flight_search","id":"srch_583","status":"completed","offer_count":88}
جایگزین کنید، اضافه نکنید.
هر رویداد
offers مقدار "replace": true دارد و کل سبد فعلی را شامل میشود (که با رسیدن منابع بیشتر دقیقتر میشود)، نه فقط پیشنهادهای تازه را. در هر رویداد، فهرست خود را کامل جایگزین کنید؛ اضافهکردن باعث تکثیر نتایج میشود.
چه زمانی از آن استفاده کنیم#
برای صفحهٔ جستوجوی تعاملی، که سرعتِ دیدهشده اهمیت دارد، از استریم استفاده کنید. برای کارهای سمت سرور که فقط فهرست نهایی را در یک پاسخ میخواهید، از همان جستوجوی معمولی (بلاکینگ) استفاده کنید. خود پیشنهادها در هر دو حالت یکساناند و در هر صورت، قدم بعدی اعتبارسنجی مجدد پیشنهاد است.
ویرایش این صفحه در گیتهابمشکلی دیدید؟ از پنل ← پشتیبانی خبرمان کنید.