API позволяет получить информацию о бронированиях средства размещения из компонентов TravelLine: Booking Engine, Channel Manager и WebPMS.
Процесс подробно описан в спецификации.
Чтобы получить постраничный список бронирований средства размещения, выполните следующие шаги:
1. Создайте начальный запрос данных
В первичном запросе укажите параметр lastModification. Для получения данных, выполните первый запрос с помощью параметра lastModification. Пример: 2023-06-20T10:41:04Z. Важно передать его без параметра continueToken.
2. Обработайте ответ и извлеките continueToken
API возвращает данные вместе с continueToken, который указывает, как получить следующий набор данных.
3. Используйте continueToken для получения следующего набора данных
Теперь, когда у вас есть continueToken, используйте его в следующем запросе для получения следующих данных.
4. Повторите процесс
Продолжайте использовать полученный continueToken из каждого последующего ответа, пока не получите все необходимые данные или флаг hasMoreData = false.
5. Используйте continueToken для получения новых данных
После получения последней страницы данных, в ответе будет возвращен флаг hasMoreData = false, который указывает, что дополнительных данных для загрузки больше нет. Однако, вместе с этим флагом, вы также получите новый continueToken. Этот токен может быть использован позже для получения новых бронирований, появившихся после вашего последнего запроса.
Схемы взаимодействия
Полная синхронизация бронирований
Актуализация бронирований после полной синхронизации
Параметры
propertyId
Параметр указывает, из какого средства размещения будут получены данные о бронированиях.
lastModification
Параметр задаёт минимальную дату, начиная с которой будут получены данные о бронированиях. В случае, если параметр не указан, будет автоматически выбрана самая ранняя дата модификации бронирования в отеле.
Параметр опционален, но он не может быть использован одновременно с параметром continueToken.
Count
Отвечает за количество броней, которые будут возвращены за ответ. Если параметр не будет указан, будет использовано стандартное значение, равное 1000.
Опциональный параметр. Его можно менять в каждом из запросов с использованием continueToken.
continueToken
Параметр предназначен для обеспечения функциональности постраничного просмотра данных, в отличие от использования lastModification. При этом, continueToken позволяет последовательно просматривать данные о бронированиях и обеспечивает полноту их отображения без пропусков.
Данный параметр полезен для извлечения обновлений данных, включая появление новых бронирований, произошедшие после предыдущего запроса.
continueToken предоставляется в каждом ответе, позволяя использовать его для следующего запроса данных.
Параметр опционален и не может быть использован одновременно с параметром lastModification.
Пример токена в ответе:
Что делать при потере continueToken
Если произойдет потеря continueToken, рекомендуется выполнить новый запрос с использованием параметра lastModification для получения нового continueToken.
Значение для lastModification рекомендуется определить следующим образом: Укажите дату последнего изменения бронирования lastModification минус два дня. Этот подход поможет избежать пропуска бронирований при последующем запросе данных.
Поля ответа
continueToken
Содержит continueToken.
hasMoreData
Поле присутствует в каждом ответе.
Если значение равно true, значит в запросе есть данные, которые можно получить с помощью continueToken.
Если значение равно false, значит на странице нет данных для загрузки. В этой ситуации рекомендуем сохранить continueToken, чтобы в дальнейшем получить информацию о бронированиях с момента, на котором остановились.
Пример hasMoreData в ответе:
Актуализация данных
После выполнения полного процесса синхронизации важно сохранить последний полученный continueToken. Это позволит вам в будущем получать информацию не только о вновь созданных бронированиях, но и о тех, что были модифицированы.
Когда происходит изменение бронирования, соответствующее значение в поле lastModification обновляется до даты последней модификации. Благодаря этому механизму, модифицированная бронь может быть повторно получена при последующих запросах с использованием continueToken.
Важно внимательно отслеживать изменения в бронированиях, чтобы избежать коллизий данных. Если вы уже работали с первоначальной версией бронирования и затем получили его обновленную версию, необходимо корректно обработать обе версии, чтобы обеспечить актуальность и целостность данных.
Метод получения детальной информации по бронированию
Метод предназначен для получения детальной информации по одному бронированию. При этом версия брони всегда последняя.
Справочники
MealPlanCode (типы питания)
Расшифровку этого поля можно найти в ContentApi в методе GET /v1/meal-plans.
Пример нахождения MealPlanCode в services:
POS (англ. Point of sale — точка продажи)
Расшифровка POS может быть найдена в примерах ответа Swagger ReservationApi.
Пример POS:
Примеры бронирований из разных систем
Бронирование из TL: Channel Manager:
Бронирование из TL: Booking Engine: