#P1457
Route: POST /api/v2/online/search/{type}
Route Info
| Method |
Endpoint |
Controller |
Middleware |
Purpose |
| POST |
/api/v2/online/search/{type} |
OnlineController@routeSearch |
authWithJwt |
جستجوی مسیر رفت و برگشت بر اساس IATA یا ID شهر |
منطق عملکرد
- اعتبارسنجی تاریخهای
departure و returning با Validator::datetime()
- فراخوانی
BaseService::combineRoute(branch, type, ...) برای دریافت پروازها.
- واکشی اطلاعات مبدا/مقصد از Redis (کلید تکی مثل
airports:IATA).
- در صورت ناکامی در Redis → دریافت از DB به همراه کش مجدد.
- تجمیع داده در
tempSearch و بازگردانی به کلاینت.
پارامترها
| نام |
نوع |
ضروری |
توضیح |
| type |
string |
بله |
flight | train |
| branch |
integer |
بله |
شناسه شعبه |
| origin |
string | int |
بله |
کد IATA یا شناسه شهر مبدأ |
| destination |
string | int |
بله |
کد IATA یا شناسه شهر مقصد |
| departure |
datetime |
بله |
تاریخ حرکت |
| returning |
datetime | null |
خیر |
تاریخ بازگشت، اختیاری |
پاسخ موفق نمونه
{
"payload": {
"departure":[{"flight":"IR432","price":2480000}],
"returning":[{"flight":"IR433","price":2490000}]
},
"meta": {
"search": {
"origin": {"iata":"IKA","title_fa":"تهران"},
"destination":{"iata":"IST","title_fa":"استانبول"},
"departure":"2025‑11‑25",
"returning":"2025‑11‑30"
},
"timestamp":1732050160
}
}
پاسخ خطا
{
"error": {
"code": 1000,
"message": "تاریخ شروع جستجو معتبر نمی باشد"
},
"meta": {"timestamp":1732050160}
}
وابستگیها
BaseService::combineRoute()
Redis → کش فرودگاهها
DB → جداول airports, countries, states, cities
بهبود پیشنهادی
- افزودن پشتیبانی از نوع
bus
- پویش همزمان در providers ( پارالل requests )