导入
航班报价搜索 API
学习如何为旅行寻找最佳航班优惠。
1https://test.api.amadeus.com/v2/shopping/flight-offers
| 参数 | 类型 | 分类 | 说明 |
|---|---|---|---|
| ACCESS_TOKEN | 字符串 | 必填 | 我们的唯一访问令牌 |
| originLocationCode | 字符串 | 必填 | 旅客出发城市/机场的IATA代码注:请参阅附录获取城市/机场代码。 |
| destinationLocationCode | 字符串 | 必填 | 旅客目的地城市/机场的IATA代码注:请参阅附录获取城市/机场代码。 |
| departureDate | 字符串 | 必填 | 出发日期格式:YYYY-MM-DD |
| adults | 整数 | 必填 | 成年人数量(12岁及以上);默认值为1 |
| returnDate | 字符串 | 可选 | 返程日期注:若未指定此参数,则返回单程行程。格式:YYYY-MM-DD |
| children | 整数 | 可选 | 儿童数量(2至12岁) |
| infants | 整数 | 可选 | 婴儿数量(2岁以下) |
| travelClass | 字符串 | 可选 | 指定乘客在飞行过程中主要停留的舱位类型。可选值包括 ECONOMY、PREMIUM_ECONOMY、BUSINESS 和 FIRST。 |
| includedAirlineCodes | 字符串 | 可选 | 以逗号分隔的2到3位航空公司代码列表,用于包含指定航空公司注:请参阅附录获取航空公司代码。 |
| excludedAirlineCodes | 字符串 | 可选 | 以逗号分隔的2到3位航空公司代码列表,用于排除指定航空公司注:请参阅附录获取航空公司代码。 |
| nonStop | 布尔值 | 可选 | 若无中转则值为 true,否则为 false |
| currencyCode | 字符串 | 可选 | 期望的航班报价货币代码注:请参阅附录获取货币代码。 |
| maxPrice | 整数 | 可选 | 每位乘客的最高价格 |
| max | 整数 | 可选 | 最多获取的航班报价数量;默认值为250 |
1// 在此处定义API密钥 2const API_KEY = '{{API_KEY}}'; 3const API_SECRET = '{{API_SECRET}}'; 4 5// 在此处定义端点URL 6const endpointUrl = new URL(`https://test.api.amadeus.com/v2/shopping/flight-offers`); 7 8// 在此处定义请求头参数 9const headerParameter = { 10 contentType: 'application/json' 11}; 12 13// 在此处定义查询参数 14const originLocationCode = 'NYC'; 15const destinationLocationCode = 'PAR'; 16const departureDate = new Date().toISOString().split('T')[0]; 17const adults = 1; 18 19const queryParameters = new URLSearchParams({ 20 originLocationCode: originLocationCode, 21 destinationLocationCode: destinationLocationCode, 22 departureDate: departureDate, 23 adults: adults.toString() 24}); 25 26// 设置API调用选项 27const options = { 28 method: 'GET', 29 headers: headerParameter, 30}; 31 32// 定义发起API调用的函数 33async function getFlightOffers() { 34 try { 35 // 在此处定义访问令牌 36 const ACCESS_TOKEN = await getAccessToken(API_KEY, API_SECRET); 37 if (!ACCESS_TOKEN) 38 return; 39 options['headers']['authorization'] = `Bearer ${ACCESS_TOKEN}`; 40 endpointUrl.search = queryParameters; 41 const response = await fetch(endpointUrl, options); 42 // 输出响应结果 43 printResponse(response); 44 } catch (error) { 45 // 输出错误信息 46 printError(error); 47 } 48} 49 50// 调用函数执行API调用 51getFlightOffers();
| 参数 | 类型 | 说明 |
|---|---|---|
| id | 字符串 | 航班报价的唯一标识符 |
| type | 字符串 | 响应项的类型;可能值为 flight-offer |
| source | 字符串 | 表示航班报价的来源;可能值为 GDS |
| instantTicketingRequired | 布尔值 | 指示预订时是否需要立即出票 |
| disablePricing | 布尔值 | 指示是否可以在不包含定价信息的情况下预订旅客姓名记录(PNR)注:该选项仅对来自GDS来源的航班报价可用。 |
| nonHomogeneous | 布尔值 | 指示定价解决方案是否预期返回多个预订信息记录 |
| oneWay | 布尔值 | 指示该航班报价是否可以与其他单程航班报价组合完成整个行程 |
| paymentCardRequired | 布尔值 | 指示预订该航班报价是否需要支付卡信息 |
| lastTicketingDate | 字符串 | 指示航班报价可用于出票的最后日期 |
| numberOfBookableSeats | 整数 | 单次请求可预订的座位数量;范围为1到9 |
| itineraries | 数组[对象] | 包含详细的航班信息,包括每个航段的持续时间、出发和到达详情 |
| price | 对象 | 包含航班价格详情,包括基础票价及附加费用 |
| pricingOptions | 对象 | 包含航班定价选项的相关信息 |
| validatingAirlineCodes | 数组[字符串] | 提供与给定航班报价对应的航空公司列表 |
| travelerPricings | 数组[对象] | 包含每位乘客/航段的票价信息 |
| dictionaries.locations | 对象 | 包含响应中所有指定地点的完整信息 |
| dictionaries.aircraft | 对象 | 包含响应中所有指定飞机型号的完整名称 |
| dictionaries.currencies | 对象 | 包含响应中所有指定货币的完整名称 |
| dictionaries.carriers | 对象 | 包含响应中所有指定航空公司的完整名称 |