Engineering

XML или JSON: выбор формата фида для инвентаря туров и трансферов

XML или JSON: выбор формата фида для инвентаря туров и трансферов

Спросите двух инженеров travel-tech, каким должен быть фид инвентаря - XML или JSON, - и вы получите тридцатиминутный спор. Честный ответ: для инвентаря туров и трансферов работают оба варианта, и формат редко определяет, будет ли интеграция успешной или провальной. Гораздо важнее контракт - схема, стабильность и то, как обрабатываются изменения. Тем не менее у выбора есть реальные компромиссы, которые стоит понимать.

Где XML всё ещё оправдывает себя

  • Схемы и валидация. XSD позволяет проверить фид по формальной схеме до обработки - это ценно для каталожных данных со строгими правилами.
  • Отраслевой прецедент. Значительная часть туристической дистрибуции (обмен сообщениями в стиле OTA/NDC) исторически основана на XML, поэтому инструменты и ожидания уже существуют.
  • Атрибуты и пространства имён. Для записей с богатой структурой атрибуты позволяют сохранять документы компактными и самоописывающими.
<product code="hagia-sophia-grand-bazaar" type="tour">
  <title>Hagia Sophia & Grand Bazaar Tour</title>
  <duration>PT8H</duration>
  <net currency="EUR">149.50</net>
</product>

Где выигрывает JSON

  • Удобство для разработчиков. Он напрямую отображается на нативные объекты почти в любом языке - меньше формальностей, быстрее парсинг.
  • Размер полезной нагрузки. Меньше накладных расходов на разметку, что важно для больших или часто запрашиваемых фидов.
  • Инструменты для современного веба. Если ваш стек - это JavaScript/TypeScript или JSON-ориентированный API-шлюз, JSON устраняет лишний шаг преобразования.
{ "code": "hagia-sophia-grand-bazaar", "type": "tour",
  "title": "Hagia Sophia & Grand Bazaar Tour",
  "duration": "PT8H", "net": 149.50, "currency": "EUR" }
Выбирайте формат, на котором ваш стек уже свободно говорит. Цена борьбы с собственными инструментами перевешивает любую абстрактную элегантность.

То, что действительно имеет значение

Какой бы формат вы ни выбрали, настаивайте на следующем:

  • Документированная, версионируемая схема. Вы должны иметь возможность проверить полезную нагрузку и знать, когда грядёт ломающее изменение.
  • Стабильные идентификаторы. Коды продуктов не должны меняться при редактировании названия.
  • Явные единицы измерения. Длительность в формате ISO 8601 (PT8H), деньги с явно указанной валютой, время с часовым поясом.
  • Чёткий сигнал "удалено". Чтобы отсутствующий продукт означал "снят с продажи", а не "обрезанный файл".

Прагматичная рекомендация

Если вы начинаете с нуля и работаете в JSON-нативной среде, выбирайте JSON. Если у вас уже работает дистрибуция на основе XML или вам нужна формальная валидация по схеме, XML вполне надёжен. Ещё лучше - работать с поставщиком, который может предоставить каталог в предпочитаемом вами формате и сохранять одни и те же идентификаторы продуктов в обоих, - так формат становится деталью реализации, а не привязкой к поставщику. Именно так Connect предоставляет инвентарь туров и трансферов по Стамбулу: один стабильный контракт и представление, которое подходит вашей команде.


Ко всем статьям

Готовы подключить стамбульский инвентарь к вашей системе?

Расскажите, как вы бронируете сегодня - через фид, API или портал - и мы подберём самый быстрый путь к актуальной доступности и мгновенному подтверждению.