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