如何使用 Amadeus API 在航班优惠搜索中设置 maxFlightTime?

How to set the maxFlightTime in a flight offers search with the Amadeus API?

我正在向 Amadeus API 发送 POST 航班信息。

我正在尝试设置 maxFlightTime 参数。

API 文档说:

maxFlightTime number example: 200 This option allows to modify the value for the Elapsed Flying Time (EFT) masterPricer option

我的问题是: 这个参数期望什么?文档说了一个数字,并提供了 200 作为示例。

这个数字代表什么?是分钟、小时还是其他时间?

maxFlightTime 使用起来有点复杂。该数字是一个百分比,表示您希望查找的航班与符合这些搜索条件的最短航班相比,可以提供多长时间。

举个例子: 我们正在使用航班优惠搜索的 POST 端点寻找从 MADSFO 的航班(为了示例,我们只返回 1 个报价):

JSON正文:

{
    "currencyCode": "EUR",
    "originDestinations": [
        {
            "id": "1",
            "originLocationCode": "MAD",
            "destinationLocationCode": "SFO",
            "departureDateTimeRange": {
                "date": "2021-05-01",
                "time": "10:00:00"
            }
        }
    ],
    "travelers": [
        {
            "id": "1",
            "travelerType": "ADULT",
            "fareOptions": [
                "STANDARD"
            ]
        }
    ],
    "sources": [
        "GDS"
    ],
    "searchCriteria": {
        "maxFlightOffers": 1,
        "flightFilters": {
            "cabinRestrictions": [
                {
                    "cabin": "ECONOMY",
                    "coverage": "MOST_SEGMENTS",
                    "originDestinationIds": [
                        "1"
                    ]
                }
            ]
        }
    }
}

如果您查看 JSON 回复,您会看到报价是 MADIST(持续时间 PT4H15M 所以 4 小时 15 分)和 ISTSFO(持续时间 PT13H20M 所以 13 点 20 分)所以总持续时间为 17 点 35 分。请注意,此 API 始终是 returns 符合给定条件的最便宜航班。

如果现在我们想要执行添加 maxFlightTime 的相同请求,但我们不希望有这么长的旅程,我们希望总持续时间最多比可用的最短航班长 110% .

我们可以用这个JSON正文

{
    "currencyCode": "EUR",
    "originDestinations": [
        {
            "id": "1",
            "originLocationCode": "MAD",
            "destinationLocationCode": "SFO",
            "departureDateTimeRange": {
                "date": "2021-05-01",
                "time": "10:00:00"
            }
        }
    ],
    "travelers": [
        {
            "id": "1",
            "travelerType": "ADULT",
            "fareOptions": [
                "STANDARD"
            ]
        }
    ],
    "sources": [
        "GDS"
    ],
    "searchCriteria": {
        "maxFlightOffers": 1,
        "flightFilters": {
            "maxFlightTime": 110,
            "cabinRestrictions": [
                {
                    "cabin": "ECONOMY",
                    "coverage": "MOST_SEGMENTS",
                    "originDestinationIds": [
                        "1"
                    ]
                }
            ]
        }
    }
}

这是您将得到的回复: MADDFW 持续时间 PT10H35M (10h35) 然后 DAL(另一个达拉斯机场?)到 SFO 持续时间 PT4H4M (4h04) 所以总时长为 14h39.

这就是为什么maxFlightTime只能在100到999之间的原因。

API规范对这个参数不是很清楚,我们会尽快更新。