如何通过Amadeus航班可用性搜索API精准获取指定航班EK-001的结果
如何通过Amadeus航班可用性搜索API精准获取指定航班EK-001的结果
嗨,我来帮你解决这个问题!你现在遇到的情况是,includedCarrierCodes: "EK"只能过滤出阿联酋航空的所有航班,但没法精准定位到EK-001这一班——这是因为这个参数本身就只是用来筛选航空公司,不支持指定具体航班号。
给你两个可行的解决方案,你可以根据自己的需求选择:
方案一:用原API请求后做客户端二次过滤
如果你还是想继续用Flight Availability Search API,那可以先发起请求拿到所有阿联酋航空的航班结果,然后在你的代码里对返回数据做过滤,只保留航班号为EK-001的条目。
举个简单的逻辑示例(假设API返回的是JSON格式):
// 假设response是API返回的完整数据 const targetFlight = response.data.flights.find(flight => flight.number === "EK001" || flight.number === "EK-001" ); // 注意:这里的flight.number字段要根据实际API返回的字段名调整,可能是flightDetails.flightNumber之类的格式
需要提醒你的是,不同场景下API返回的航班号格式可能不一样,有的是不带连字符的EK001,有的是带连字符的EK-001,你可以先调用一次API看看返回的具体格式,再调整过滤条件。
方案二:改用更精准的Flight Details API
如果想直接通过API请求就拿到EK-001的结果,更推荐你使用Amadeus的Flight Details API——这个API就是专门用来查询特定航班的详情和可用性的,比航班可用性搜索API更精准。
你需要在请求里传入以下关键参数:
carrierCode: "EK"flightNumber: "001"(注意不要带连字符,大部分API要求直接传数字部分)departureDate: 你要查询的日期(格式要符合API要求,比如YYYY-MM-DD)originLocationCode: 出发地的IATA代码(比如DXB)destinationLocationCode: 目的地的IATA代码(比如LHR)
这样请求下来,API会直接返回EK-001这一班的具体信息,不用再做额外过滤,效率更高。
备注:内容来源于stack exchange,提问作者Sneha
相关产品推荐
相关产品推荐

