Sabre BFM (soap) 是不是提供任何方法来对结果进行排序?

Posted

技术标签:

【中文标题】Sabre BFM (soap) 是不是提供任何方法来对结果进行排序?【英文标题】:Does Sabre BFM (soap) provides any method to sort the results?Sabre BFM (soap) 是否提供任何方法来对结果进行排序? 【发布时间】:2018-03-12 05:49:59 【问题描述】:

我对 Sabre apis 完全陌生。我有一个项目已经实现了“Bargain Finder Max”saber soap api。据我在网上搜索,我只能找到这个documentation,其中提到我们可以通过将参数sortBy 与请求一起发送来对API 结果进行排序。但这是 Sabre 下的 REST api,而在项目中实现的 API 是 SOAP 下的 this。

在代码中发送的请求和响应也是正确的。例如:它发送以下请求

<OTA_AirLowFareSearchRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="3.4.0" ResponseType="OTA" ResponseVersion="3.4.0">
    <POS>
        <Source PseudoCityCode="PCC">
            <RequestorID ID="1" Type="1">
                <CompanyName Code="TN">TN</CompanyName>
            </RequestorID>
        </Source>
    </POS>
    <OriginDestinationInformation RPH="1">
        <DepartureDateTime>2016-10-26T00:00:00</DepartureDateTime>
        <OriginLocation LocationCode="LHR"/>
        <DestinationLocation LocationCode="BOM"/>
        <TPA_Extensions>
            <SisterOriginLocation LocationCode="LTN"/>
            <SisterOriginLocation LocationCode="LGW"/>
            <SegmentType Code="O"/>
            <CabinPref Cabin="Y" PreferLevel="Preferred"/>
        </TPA_Extensions>
    </OriginDestinationInformation>
    <OriginDestinationInformation RPH="2">
        <DepartureDateTime>2016-11-04T00:00:00</DepartureDateTime>
        <OriginLocation LocationCode="BOM"/>
        <DestinationLocation LocationCode="LHR"/>
        <TPA_Extensions>
            <SisterDestinationLocation LocationCode="LTN"/>
            <SisterDestinationLocation LocationCode="LGW"/>
            <SegmentType Code="O"/>
        </TPA_Extensions>
    </OriginDestinationInformation>
    <TravelerInfoSummary>
        <SeatsRequested>1</SeatsRequested>
        <AirTravelerAvail>
            <PassengerTypeQuantity Code="ADT" Quantity="1"/>
        </AirTravelerAvail>
        <PriceRequestInformation CurrencyCode="GBP"/>
    </TravelerInfoSummary>
    <TPA_Extensions>
        <IntelliSellTransaction>
        </IntelliSellTransaction>
    </TPA_Extensions>
</OTA_AirLowFareSearchRQ>

这会产生正确的结果。但现在我需要根据最短时间和价格对结果进行排序。如果 api 提供任何排序​​方法或者我必须创建自己的方法,请指导我。

谢谢!

【问题讨论】:

【参考方案1】:

首先,正如您想象的那样,文档不是针对 Bargain Finder Max (BFM),而是另一个名为 InstaFlight 的服务,您需要检查的实际文档在这里:https://developer.sabre.com/docs/read/soap_apis/air/search/bargain_finder_max/resources

现在,关于您的实际问题,唯一可以帮助您进行排序的是使用优先级,您需要按照您想要的顺序将它们从 1 设置为 4。

<PriceRequestInformation CurrencyCode="GBP">
    <TPA_Extensions>
        <Priority>
            <Price Priority="1"/>
            <DirectFlights Priority="2"/>
            <Time Priority="3"/>
            <Vendor Priority="4"/>
        </Priority>
    </TPA_Extensions>
</PriceRequestInformation>

【讨论】:

以上是关于Sabre BFM (soap) 是不是提供任何方法来对结果进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

sabre:循环通过 TEL-property 不能提供预期的结果

如何将掩码卡号而不是完整的卡号发送到 Sabre AirTicketLLSRQ api?

UVM Primer - SystemVerilog interfaces 和 BFM

sabre/dav - 服务器指定了一个无效的日历主页

Sabre 无会话身份验证

Sabre 并发请求限制