Начало работы


Оглавление:


Документация #

Dev Studio #

Sabre Dev Studio — портал для разработчиков Sabre APIs, на котором располагается:

Для каждого сервиса на Dev Studio есть страница с описанием и примером запроса и ответа, а также страница с ресурсами, на которой представлены:

  • история изменения версий сервиса (Release Notes)
  • документация по запросу к сервису (Request Documentation)
  • документация по ответу от сервиса (Response Documentation)
  • примеры запросов и ответов (Samples)
  • ссылка на WSDL-файл (WSDL)
  • ссылка на XSD-схемы запросов и ответов (Schemas)

Рассылка Sabre APIs #

Почтовая рассылка Sabre APIs содержит информацию о новых сервисах и продуктах, важных изменениях и других новостях. Для подписки на рассылку необходимо отправить адрес электронной почты своему куратору в Sabre.

Sabre Central #

Sabre Central — агентский портал Sabre, на котором доступны новости Sabre, обучающие материалы, документация по продуктам и другая информация. Для входа используется любая учетная запись Sabre.

Sabre Central Marketpace #

Sabre Central Marketplace — агентский портал Sabre, на котором доступны описания всех продуктов Sabre. Для входа используется любая учетная запись Sabre.

Finder #

Finder — справочная система по всем терминальным командам и настройкам Sabre. Для входа используется любая учетная запись Sabre.

Справочник форматов Sabre #

Справочник форматов Sabre доступен для загрузки на сайте Sabre Helpdesk.

Сервисы Sabre #

В Sabre существуют два вида сервисов: SOAP и REST. В данном руководстве описано взаимодействие только с SOAP сервисами.

Протокол SOAP #

SOAP — протокол обмена сообщениями между несколькими системами, который использует язык разметки XML для сообщений.

Для взаимодействия с SOAP сервисами Sabre необходимо отправить специальным образом структурированное сообщение в формате XML через протокол HTTPS. В ответ сервис Sabre направит сообщение с результатами выполнения запроса. Все исходящие от сервисов Sabre сообщения всегда должны быть инициированы запросом со стороны системы агентства.

Для шифрования данных при отправке запросов к сервисам Sabre и получения ответов от них используется криптографический протокол TLS версии 1.2 и выше.

Сообщения #

Сообщения, отправляемые с использованием SOAP сервисов, должны быть обернуты в т.н. конверт (Envelope). SOAP конверт должен содержать заголовок сообщения (Header) и его тело (Body).

SOAP конверт
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header>
    <!-- Заголовок сообщения-->
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <!-- Тело сообщения-->
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

В заголовке сообщения необходимо добавить обязательные элементы:

  • /SOAP-ENV:Envelope/SOAP-ENV:Header/MessageHeader/From/PartyId — идентификатор отправителя. Может быть выбран произвольно отправителем. В ответе на запрос он будет указан в качестве идентификатора получателя
  • /SOAP-ENV:Envelope/SOAP-ENV:Header/MessageHeader/To/PartyId — идентификатор получателя. Может быть выбран произвольно отправителем. В ответе на запрос он будет указан в качестве идентификатора отправителя
  • /SOAP-ENV:Envelope/SOAP-ENV:Header/MessageHeader/ConversationId — идентификатор диалога. Может быть выбран произвольно отправителем. Он будет использован в ответе на запрос в качестве идентификатора диалога
  • /SOAP-ENV:Envelope/SOAP-ENV:Header/MessageHeader/MessageData/MessageId — идентификатор сообщения. Может быть выбран произвольно отправителем. Он будет использован в ответе на запрос в качестве идентификатора сообщения, для которого отправляется ответ
  • /SOAP-ENV:Envelope/SOAP-ENV:Header/MessageHeader/MessageData/Timestamp — время отправки сообщения. Может быть указано произвольно отправителем
  • /SOAP-ENV:Envelope/SOAP-ENV:Header/MessageHeader/Action — название используемого сервиса
  • /SOAP-ENV:Envelope/SOAP-ENV:Header/Security/BinarySecurityToken — токен сессии или токен доступа (используется для всех запросов кроме запроса на создание сессии или токена доступа, подробнее см. Аутентификация)
Пример
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header>
    <MessageHeader xmlns="http://www.ebxml.org/namespaces/messageHeader">
      <From>
        <PartyId>Agency</PartyId>
      </From>
      <To>
        <PartyId>Sabre</PartyId>
      </To>
      <ConversationId>694ec185-72b5-40c8-bdb8-2d11efb16e0a</ConversationId>
      <MessageData>
        <MessageId>21d22b9c-69d1-4f82-a602-f814be4c0ac7</MessageId>
        <Timestamp>2018-04-02T19:35:13</Timestamp>
      </MessageData>
      <Action>CreatePassengerNameRecordRQ</Action>
    </MessageHeader>
    <Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext">
      <BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTC!ICESMSLB\/CRT.LB!-3161758208100314490!1658458!0</BinarySecurityToken>
    </Security>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <!-- Тело сообщения -->
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Компрессия данных #

Для ускорения получения ответов от сервисов Sabre рекомендуется включить gzip компрессию ответов, указав в HTTP-заголовках запросов параметр Accept-Encoding со значением gzip, deflate:

Заголовок
Accept-Encoding: gzip, deflate

Среды и адреса для отправки запросов #

В Sabre существует две среды для работы:

  • CERT. Тестовая среда для разработки и отладки приложений. В этой среде можно создавать тестовые бронирования и оформлять билеты без необходимости их отмены. Среда подключена к тестовым средам перевозчиков, поэтому некоторые действия могут быть недоступны в ней (см. ниже). Адрес для отправки запросов: https://webservices.cert.platform.sabre.com
  • PROD. “Боевая” среда для использования в приложениях. Среда подключена к боевым средам перевозчиков. Адрес для отправки запросов: https://webservices.platform.sabre.com

Каждой среде соответствует специальная сборка терминала Sabre Red: PROD, CERT.

Среды независимы друг от друга, это означает, что в случае выполнения каких-либо изменений в одной среде (создание бронирования, изменение настроек, создание или изменение учетных записей и т.д.), эти изменения не попадут в другую среду. Однако, два раза в год тестовая среда очищается и на ней разворачивается выполненный ранее слепок из боевой среды. Агентства заранее уведомляются об этом рассылкой.

Создаваемый слепок содержит в себе учетные записи и настройки PCC, но не содержит бронирования или билеты. Поэтому не рекомендуется изменять или создавать учетные записи или настройки в тестовой среде в момент между созданием слепка среды и его разворачиванием в тестовой среде.

При работе в среде CERT могут возникать проблемы при получении информации о наличии мест, подтверждении бронирования и оформлении билетов для некоторых перевозчиков. Для того чтобы избежать этих проблем рекомендуется проводить тестирование на следующих перевозчиках:

  • EY — Etihad
  • B2 — Belavia
  • DV — SCAT Airlines
  • KC — Air Astana
  • AA — American Airlines

Также рекомендуется создавать бронирования с более ранними датами вылета (не более недели от текущей даты).

Терминальные команды #

Многие сервисы Sabre имеют аналогичные команды, доступные в терминале Sabre (в синем экране). Соответствующую команду можно увидеть в документации к некоторым сервисам, а также в ответе на запрос, если в корневом элементе последнего указать значение true у атрибута ReturnHostCommand. Такая возможность предусмотрена для тех сервисов, название которых содержит буквы LLS, например сервис IgnoreTransactionLLSRQ (игнорирование бронирования).

Пример запроса
<IgnoreTransactionRQ ReturnHostCommand="true" Version="2.0.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10"/>

В ответе на данный запрос будет указана аналогичная команда для терминала Sabre — I.

Пример ответа
<IgnoreTransactionRS Version="2.0.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:stl="http://services.sabre.com/STL/v01" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <stl:ApplicationResults status="Complete">
    <stl:Success timeStamp="2018-04-03T12:05:22-05:00">
      <stl:SystemSpecificResults>
        <stl:HostCommand LNIATA="10EB49">I</stl:HostCommand>
      </stl:SystemSpecificResults>
    </stl:Success>
  </stl:ApplicationResults>
</IgnoreTransactionRS>

Примеры исходных кодов #

См. раздел Solutions на портале Sabre Dev Studio.

Обработка ошибок #

См. раздел Errors на портале Sabre Dev Studio.

Версионирование #

Sabre APIs поддерживают семантическое версионирование. Это означает, что номер версии каждого сервиса состоит из 3 чисел, разделенных точками, например 3.2.0, где:

  • первое число — мажорная версия сервиса. Меняется при несовместимых изменения сервиса с изменением схемы запроса или ответа
  • второе число — минорная версия сервиса. Меняется при добавлении нового функционала с изменением схемы запроса или ответа без нарушения обратной совместимости
  • третье число — патч версия сервиса. Меняется при добавлении незначительных изменений, не влияющих на схему запроса или ответа

Sabre официально поддерживает только 5 последних версий каждого сервиса. Более ранние версии также могут работать, однако официально не поддерживаются.

Обратите внимание на то, что ранние версии сервисов могут быть отключены. Список версий сервисов, планируемых к отключению, представлен на портале Sabre Dev Studio.