如何在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对象中添加标识字段,并调整请求参数:
- 添加舱段类型标识:在
segment里加入segmentType字段并设置为"OPEN"(部分版本接口可能用openIndicator字段,设为true); - 移除不必要字段:直接删除
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
相关产品推荐
相关产品推荐

