You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Sabre REST API Get Cabin For Rbd中指定OPEN舱段类型

调用Sabre Get Cabin For Rbd接口时如何指定OPEN舱段?

我正在调用Sabre REST API的Get Cabin For Rbd接口(/v1.0.0/rbd/cabin),根据官方文档说明:

  • 必填信息包括承运人代码、RBD(舱位代码)、旅行航段的起飞机场和到达机场;
  • 若为OPEN舱段类型,则无需必填航班号和旅行日期(出发日期)。

但我在请求数据模型里找不到指定OPEN舱段类型的字段,尝试将flightNumber设为空值、"OPEN"或null时,API始终返回错误:

"Flight number can not be null for normal segment"

请求示例

{
  "segmentItems": {
    "segment": [
      {
        "id": 1,
        "carrierCode": "AA",
        "bookingCode": "J",
        "origin": "DFW",
        "destination": "MIA",
        "processingDate": "2023-11-13T09:05:06.332Z",
        "flightNumber": null
      }
    ]
  },
  "lang": "EN",
  "version": "1.0.0"
}

响应示例

{
    "status": "FAILURE",
    "errorItems": {
        "error": [
            {
                "code": "INVALID_REQUEST",
                "shortDescription": "javax.validation.ConstraintViolation",
                "longDescription": "Flight number can not be null for normal segment",
                "refId": 1
            }
        ]
    },
    "version": "1.0.0",
    "lang": "EN"
}

请问如何在此API中指定OPEN舱段类型?


解决方案

要触发OPEN舱段的校验逻辑,你需要在segment对象中添加标识字段,并调整请求参数:

  1. 添加舱段类型标识:在segment里加入segmentType字段并设置为"OPEN"(部分版本接口可能用openIndicator字段,设为true);
  2. 移除不必要字段:直接删除flightNumber和processingDate字段(不要设为null,否则会被判定为普通舱段的必填项缺失)。

调整后的有效请求示例:

{
  "segmentItems": {
    "segment": [
      {
        "id": 1,
        "carrierCode": "AA",
        "bookingCode": "J",
        "origin": "DFW",
        "destination": "MIA",
        "segmentType": "OPEN"
      }
    ]
  },
  "lang": "EN",
  "version": "1.0.0"
}

如果segmentType无效,可尝试替换为openIndicator: true,同时确保不包含flightNumber和processingDate字段,这样API会识别为OPEN舱段,不再校验航班号和日期。


内容的提问来源于stack exchange,提问作者Marco Hung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:43:34