调用Amadeus Flight Dates API返回404 NotFound错误如何解决
问题原因
你遇到的404属于Amadeus Flight Dates接口的业务错误,错误码6003代表当前传入的查询条件组合下没有匹配的票价结果,并非接口路径错误或鉴权失败。
解决方案
- 调整查询日期范围:该接口可查询的票价数据取决于航司的放票周期,大部分航司仅提前45天内放出准确票价,你可以先将
departureDate的结束范围从60天缩小到30天测试,确认是否能返回有效数据。 - 放宽查询参数限制:你可以先移除
oneWay=true和viewBy=DATE参数测试往返航线是否有结果,美加跨境的部分廉航票价不在该接口覆盖范围内,如果需要覆盖廉航数据可以更换为Flight Offers Search接口查询。 - 增加业务异常捕获:该接口的业务逻辑本身会在无匹配结果时返回404错误,属于正常返回场景,你需要在代码中增加异常捕获逻辑,针对错误码6003的返回做兜底处理,不要直接当成接口调用失败。
调整后的代码示例
const Amadeus = require("amadeus"); var client = new Amadeus({ hostname: "production", clientId: FLIGHT_SEARCH_API_KEY, clientSecret: FLIGHT_SEARCH_API_SECRET, }); try { const response = await client.shopping.flightDates.get({ origin, destination, // 缩小日期范围到未来30天测试 departureDate: `${currentDate},${thirtyDaysLater}`, oneWay: true, viewBy: "DATE", }); // 处理正常返回结果 } catch (error) { // 捕获无数据的业务错误 if (error.code === 'NotFoundError' && error.description?.some(err => err.code === 6003)) { console.log('当前查询条件下无可用票价'); // 自定义兜底逻辑 } else { // 处理其他真正的调用错误 console.error('接口调用失败', error); } }
内容的提问来源于stack exchange,提问作者gtmsingh
相关产品推荐
相关产品推荐

