شما به دو روش کلی و متفاوت می توانید اطلاعات availability را دریافت نمایید.
روش اول: درخواست real-time
در این روش، هربار که مسافری در سایت شما جستجو انجام دهد، شما با ارسال درخواست اطلاعات availability را دریافت کرده و به مسافر نمایش می دهید.
این روش مناسب زمانی است که سایت شما دارای ترافیک زیادی نیست. به عنوان مثال مجموع تعداد درخواست شما به سرویس، کمتر از 30 هزار عدد درخواست در روز می باشد.
روش دوم: Cache کردن اطلاعات و پاسخ دادن به جستجوها از Cache داخلی خود
در این روش شما در فواصل زمانی منظم، اطلاعات availability را از تامین کننده دریافت و در سمت خود ذخیره می نمایید. سپس هربار که کاربری در سایت شما جستجو انجام میدهد، از Cache داخلی خود اطلاعات را دریافت کرده و به مسافر نمایش می دهید.
این روش مناسب زمانی است که سایت شما دارای ترافیک زیادی می باشد.
دریافت از طریق API: #
عنوان وضعیت مقادیر توضیحات Method اجباری GET متد ارسال درخواست Domain اجباری نام دامنه ثبت شده در اتوماسیون Api Url اجباری دامنه هسته مرکزی سرویس type اجباری flight/bus/train/ship/insurance/service پارامترهای url Api version اجباری به نسخه فعلی سرویس API تلقی میشود که در قسمت پیش نیازهای اتوماسیون به ریز شرح داده شده است. Authorization اجباری توکن JWT تولید شده این توکن بصورت JWT تولید میشود.
هنگام ارسال درخواست،پارامترهای ارسالی url میتوانند تغییر کنند.
{ {Api Url }}/search/{ {type }}
HEADER
GET /api/reservation/{ {Api version }}/search/{ {type }} HTTP/ 1.1
Host: { {Your Host }}
Content-Type: application/json
Authorization: Bearer JWTToken
Domain: { {Your Domain }}
JSON
API Url از طریق پنل کاربری قابل مشاهده خواهد بود.
مقادیر ارسالی – Request Data #
عنوان نوع وضعیت مقادیر توضیحات datetime_start String اجباری تاریخ رفت datetime_end String اجباری تاریخ برگشت اگر از روش real-time استفاده میکنید نیازی به قرار دادن این کلید نیست ولی اگر از روش cache استفاده میکنید قرار دادن این کلید اجباری میباشد origin String اجباری یاتا فرودگاه مبدا destination String اجباری یاتا فرودگاه مقصد
هنگام استفاده از روش real-time تاریخ رفت و برگشت را میتوانید در بازه یک روزه تا یک ساله انتخاب نمایید.
{
"datetime_start" : "2025-01-19" ,
"datetime_end" : "2025-01-19" ,
"origin" : "THR" ,
"destination" : "KIH"
}
JSON
پاسخ صحیح – Response True #
عنوان نوع مقادیر توضیحات items Array items[index].charter_id Integer عطف چارتر items[index].serial Integer سریال چارتر items[index].supplier Integer کد تامین items[index].id String items[index].plan Boolean items[index].details Object items[index].details.airline Object items[index].details.airline.iata String items[index].details.airline.icao String items[index].details.airline.logo String items[index].details.airline.title Object items[index].details.airline.title.fa String items[index].details.airline.title.en String items[index].details.origin Object items[index].details.origin.iata String items[index].details.origin.terminal Integer items[index].details.destination Object items[index].details.destination.iata String items[index].details.destination.terminal Integer items[index].details.aircraft Object items[index].details.aircraft.iata String items[index].details.aircraft.icao String items[index].details.aircraft.title Object items[index].details.aircraft.title.fa String items[index].details.aircraft.title.en String items[index].details.flight_number String items[index].details.steps Boolean items[index].details.duration String items[index].details.datetime String items[index].details.arrival_datetime String items[index].items Array items[index].items[index].item_id Integer items[index].items[index].title String items[index].items[index].reservable Boolean items[index].items[index].statistics Object items[index].items[index].statistics.capacity Integer items[index].items[index].statistics.waiting Integer items[index].items[index].max_purchase Integer items[index].items[index].rules null items[index].items[index].services Boolean items[index].items[index].baggage Object items[index].items[index].baggage.trunk Object items[index].items[index].baggage.trunk.adult Object items[index].items[index].baggage.trunk.adult.number Integer items[index].items[index].baggage.trunk.adult.weight Integer items[index].items[index].baggage.trunk.child Object items[index].items[index].baggage.trunk.child.number Integer items[index].items[index].baggage.trunk.child.weight Integer items[index].items[index].baggage.trunk.infant Object items[index].items[index].baggage.trunk.infant.number Integer items[index].items[index].baggage.trunk.infant.weight Integer items[index].items[index].baggage.hand Object items[index].items[index].baggage.hand.adult Object items[index].items[index].baggage.hand.adult.number Integer items[index].items[index].baggage.hand.adult.weight Integer items[index].items[index].baggage.hand.child Object items[index].items[index].baggage.hand.child.number Integer items[index].items[index].baggage.hand.child.weight Integer items[index].items[index].baggage.hand.infant Object items[index].items[index].baggage.hand.infant.number Integer items[index].items[index].baggage.hand.infant.weight Integer items[index].items[index].financial Object items[index].items[index].financial.adult Object items[index].items[index].financial.adult.base_fare Integer items[index].items[index].financial.adult.taxes Boolean items[index].items[index].financial.adult.total_fare Integer items[index].items[index].financial.adult.payable Integer items[index].items[index].financial.adult.markups Boolean items[index].items[index].financial.adult.commissions Boolean items[index].items[index].financial.adult.citizenship Boolean items[index].items[index].financial.child Object items[index].items[index].financial.child.base_fare Integer items[index].items[index].financial.child.taxes Boolean items[index].items[index].financial.child.total_fare Integer items[index].items[index].financial.child.payable Integer items[index].items[index].financial.child.markups Boolean items[index].items[index].financial.child.commissions Boolean items[index].items[index].financial.child.citizenship Boolean items[index].items[index].financial.infant Object items[index].items[index].financial.infant.base_fare Integer items[index].items[index].financial.infant.taxes Boolean items[index].items[index].financial.infant.total_fare Integer items[index].items[index].financial.infant.payable Integer items[index].items[index].financial.infant.markups Boolean items[index].items[index].financial.infant.commissions Boolean items[index].items[index].financial.infant.citizenship Boolean items[index].description Object items[index].description.public Boolean items[index].description.financial Boolean meta Object meta.timestamp Timestamp زمان تولید پاسخ این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.
دریافت این پاسخ با Status Code 200 دریافت خواهد شد.
{
"items" : [
{
"charter_id" : 10001 ,
"serial" : 10001 ,
"supplier" : 1 ,
"id" : "Tr4afsX" ,
"plan" : false ,
"details" : {
"airline" : {
"iata" : "" ,
"icao" : "" ,
"logo" : "" ,
"title" : {
"en" : "" ,
"fa" : ""
}
},
"origin" : {
"iata" : "" ,
"terminal" : false
},
"destination" : {
"iata" : "" ,
"terminal" : false
},
"aircraft" : {
"iata" : "" ,
"icao" : "" ,
"title" : {
"en" : "" ,
"fa" : null
}
},
"flight_number" : "" ,
"steps" : false ,
"duration" : false ,
"datetime" : "2025-01-19 00:00" ,
"arrival_datetime" : false
},
"items" : [
{
"item_id" : 0 ,
"title" : "Y" ,
"reservable" : true ,
"statistics" : {
"capacity" : 9 ,
"waiting" : 0
},
"max_purchase" : 9 ,
"rules" : null ,
"services" : false ,
"baggage" : {
"trunk" : {
"adult" : {
"number" : 1 ,
"weight" : 20
},
"child" : {
"number" : 1 ,
"weight" : 20
},
"infant" : {
"number" : 0 ,
"weight" : 0
}
},
"hand" : {
"adult" : {
"number" : 1 ,
"weight" : 7
},
"child" : {
"number" : 1 ,
"weight" : 7
},
"infant" : {
"number" : 0 ,
"weight" : 0
}
}
},
"financial" : {
"adult" : {
"base_fare" : 250000 ,
"taxes" : false ,
"total_fare" : 250000 ,
"payable" : 250000 ,
"markups" : false ,
"commissions" : false ,
"citizenship" : false
},
"child" : {
"base_fare" : 20000 ,
"taxes" : false ,
"total_fare" : 20000 ,
"payable" : 20000 ,
"markups" : false ,
"commissions" : false ,
"citizenship" : false
},
"infant" : {
"base_fare" : 6 ,
"taxes" : false ,
"total_fare" : 6 ,
"payable" : 6 ,
"markups" : false ,
"commissions" : false ,
"citizenship" : false
}
}
},
...
],
"description" : {
"public" : false ,
"financial" : false
}
},
...
],
"meta" : {
"timestamp" : "Timestamp" // Timestamp
}
}
JSON
پاسخ نادرست – Response False #
عنوان نوع مقادیر توضیحات error Object error.code Integer شماره خطا مربوطه جهت استعلام خطا میتوانید از طریق این لینک اقدام کنید. meta Object meta.timestamp Timestamp زمان تولید پاسخ این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.
{
"error" : {
"code" : "Error Code"
},
"meta" : {
"timestamp" : "Timestamp" // Timestamp
}
}
JSON
در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نموده اید.