如何使用Amadeus API的Flight Offers Search接口实现分页功能
Amadeus Flight Offers Search v2接口本身确实没有原生的limit/offset分页参数,你可以通过以下两种方式实现分页需求:
方案1:本地内存分页(推荐绝大多数场景使用)
- 接口支持
max请求参数,可设置的最大值为250,你当前使用的请求中已经携带了max=10参数,若要使用本方案直接将该参数值调整为250,即可单次请求拉取所有符合当前搜索条件的航班结果。 - 拉取到所有
data数组内的航班数据后,在你的业务侧(服务端或前端)做内存分页:比如每页展示10条,第n页就取数组下标(n-1)*10到n*10的对应数据即可。 - 该方案实现成本极低,且250条的结果量完全能覆盖普通用户的航班浏览需求,不需要额外处理多请求的兼容问题。
方案2:拆分多请求合并分页(适用于需要超250条结果的特殊场景)
如果你的业务确实需要返回超过250条的航班结果,可以将单次搜索请求按维度拆分多次调用,合并结果后再做分页:
- 可拆分的维度包括:起飞时间段(比如将一天分为0-8点、8-16点、16-24点三个时段分别请求)、直飞/中转、航司、价格区间等。
- 多次请求返回的结果合并后,可通过航班offer的
id字段去重,再按需求做分页即可。
注意事项
- 接口有调用频率限制,拉取到的航班结果建议缓存15-30分钟,避免重复请求触发限流。
- 拆分请求时除了拆分维度的参数外,其他搜索参数要保持一致,避免出现结果不匹配的问题。
内容的提问来源于stack exchange,提问作者Jitendra Tripathi
相关产品推荐
相关产品推荐

