
Мировой рынок туристических технологий быстро меняется. Туристические агентства и компании, занимающиеся туристическими технологиями, которые когда-то полагались на готовое программное обеспечение для бронирования, теперь понимают, что владение собственной инфраструктурой бронирования дает вам серьезное конкурентное преимущество. Когда вы создаете API бронирования путешествий на базе Amadeus GDS, вы получаете прямой доступ к актуальной информации о рейсах, тарифам в реальном времени и управлению PNR, не завися от сторонней платформы, стоящей между вами и путешественником. В этом руководстве подробно рассказывается, как создать, настроить и опубликовать собственный API бронирования путешествий с помощью Amadeus GDS. Независимо от того, являетесь ли вы туристическим агентством, стремящимся выйти за рамки стандартных инструментов бронирования, стартапом в области туристических технологий, создающим портал для агентов, или разработчиком, которому поручено интегрировать поиск авиабилетов в специальную платформу, этот ресурс вам нужен.
Интеграция API Amadeus GDS — это процесс подключения вашего приложения или платформы к глобальной системе дистрибуции Amadeus для доступа к актуальным данным о рейсах, ценам, доступности и возможностям бронирования. Amadeus — один из крупнейших поставщиков GDS в мире, обслуживающий авиакомпании, туристические агентства и технологические компании в более чем 190 странах.
При интеграции с Амадей, вы подключаетесь к актуальной базе данных о местах, тарифах, дополнительных услугах и расписаниях авиакомпаний, которая поддерживается в режиме реального времени. Это фундаментально отличается от очистки сайта бронирования или использования статических данных о рейсах.
Вот к чему Amadeus GDS предоставляет вам доступ при создании собственного API:
Для туристических агентств и компаний, занимающихся туристическими технологиями, этот уровень доступа означает, что вы можете создавать системы, которые ведут себя именно так, как нужно вашему бизнесу, а не так, как решил поставщик.
Создание собственного API бронирования путешествий — правильный выбор не для каждой организации. Для этого требуются ресурсы для разработки, постоянное обслуживание и четкое понимание того, что вам нужно от интеграции. Но для следующих типов бизнеса он приносит прибыль, намного превышающую инвестиции.
Если ваше агентство обрабатывает значительные объемы бронирования, а вы ограничены текущей системой бронирования, специальный API дает вам полный контроль над потоком бронирования, логикой ценообразования, правилами наценки и отчетностью. Вы перестаете платить посреднику за транзакцию и начинаете владеть всем рабочим процессом.
Создание стартаповПорталы бронирования авиабилетов B2C илибелые порталы для полетов нужен надежный, масштабируемый источник полетных данных. Интеграция API Amadeus GDS дает вам оперативную основу запасов, необходимую вашему продукту с самого первого дня.
Агрегаторам путешествий, которые обслуживают несколько агентств или потребительскую аудиторию, необходимы возможности поиска в больших объемах и гибкая логика отображения тарифов. Пользовательскийпортал-агрегатор путешествий Созданный на базе Amadeus, вы получаете тот контроль и производительность, которые необходимы вашей платформе.
Корпоративным TMC необходимо обеспечить соблюдение политик, логику выбора предпочтительного оператора связи и отчетность, встроенную в рабочий процесс бронирования. Пользовательский API позволяет вам встроить все это в ядро, а не привязывать его к общей платформе.
Прежде чем написать одну строку кода, вам необходимо зарегистрироваться для доступа кAmadeus для разработчиков программа. Amadeus предлагает портал для разработчиков самообслуживания с тестовой средой, которая дает вам бесплатный доступ к смоделированным полетным данным, чтобы вы могли построить и протестировать свою интеграцию перед ее запуском в эксплуатацию.
Вот что нужно сделать:
Как только ваша заявка будет одобрена, вы получите ключ API и секрет API, которые ваш сервер будет использовать для аутентификации на платформе Amadeus.
Пользовательский API бронирования путешествий разработка хорошо работает с несколькими серверными стеками. Amadeus предоставляет официальные SDK для Node.js и Python, которые значительно упрощают интеграцию. Вот справочная информация о наиболее часто используемых технологиях:
Слой | Технологические возможности | Примечания |
Серверный язык | Node.js, Python, PHP, Java | Node.js наиболее популярен для REST API |
Платформа API | Экспресс, FastAPI, Laravel, Spring | Выбирайте, исходя из знакомства с командой |
Амадеус SDK | Amadeus Node SDK, Python SDK | Официальные SDK от разработчиков Amadeus |
База данных | PostgreSQL, MySQL, MongoDB | Реляционная БД предпочтительна для резервирования данных |
Уровень кэша | Redis, Memcached | Необходим для кэширования поиска рейсов |
Аутентификация | OAuth 2.0, JWT | Amadeus API изначально использует OAuth 2.0 |
Хостинг | AWS, GCP, Azure, DigitalOcean | Облачный хостинг рекомендуется для масштабируемости |
Для большинства команд, создающих API для бронирования среднего и крупного масштаба, Node.js с Express в сочетании с кэшированием Redis и PostgreSQL для записей бронирования является надежным и масштабируемым выбором.
Amadeus использует OAuth 2.0 для аутентификации. Прежде чем вы сможете позвонить в любую конечную точку поиска рейсов или бронирования, вашему серверу необходимо запросить токен доступа, используя ваш ключ и секрет API. Этот токен затем передается как токен носителя во всех последующих запросах API.
Токен имеет ограниченный срок действия, обычно около 30 минут, поэтому вашему приложению необходимо автоматически обрабатывать обновление токена. Встройте в свой API уровень управления токенами, который проверяет срок действия перед каждым исходящим запросом и обновляет токен при необходимости.
Amadeus API для турагентов предоставляет широкий спектр конечных точек. Для функционального API бронирования путешествий вам необходимо реализовать эти основные конечные точки в определенном порядке, который отражает процесс бронирования:
Конечная точка API Amadeus | Что он делает | Типичный случай использования |
Поиск предложений рейсов | Возврат доступных рейсов по тарифам | Поиск рейсов B2C и B2B |
Предложения полетов Цена | Подтверждает и пересматривает выбранный маршрут | Подтверждение цены предварительного бронирования |
Рейс Создать заказы | Бронирует рейс и создает PNR | Фактический процесс бронирования |
Поиск аэропортов и городов | Возвращает коды и местоположения IATA | Автозаполнение поиска |
Поиск вдохновения для полета | Предлагает направления по бюджету | Особенности путешествий |
Отображение карты мест | Возвращает наличие мест и карту | Выбор места при бронировании |
Поиск кода авиакомпании | Возвращает названия авиакомпаний по коду IATA | Показать информацию об авиакомпании |
Каждая конечная точка влияет на следующую. Путешественник ищет авиабилеты, выбирает маршрут, подтверждает цену и затем бронирует. Ваш API должен надежно обрабатывать всю последовательность действий, включая крайние случаи, такие как истечение срока действия тарифа и распроданный инвентарь.
Уровень поиска рейсов — наиболее критичная к производительности часть вашего API. Каждый поисковый запрос попадает в Amadeus в режиме реального времени и возвращает потенциально большой объем ответа. Вот как его правильно построить:
Создание системы бронирования путешествий, лучшие практики также включают реализацию обработки ограничений скорости. Amadeus имеет ограничения на количество запросов в минуту в зависимости от вашего уровня API, поэтому вашему уровню поиска необходимо ставить запросы в очередь или регулировать их при достижении этих ограничений.
Создание бронирования через Amadeus API включает два этапа. Сначала вы меняете цену выбранного предложения, чтобы подтвердить текущую доступность и тариф. Во-вторых, вы отправляете бронирование с данными о пассажирах для создания PNR. Вот поток:
Вы должны обработать случай, когда ценообразование прошло успешно, но бронирование не удалось из-за условий конкуренции за количество мест. Ваш API должен отображать четкую, удобную для пользователя ошибку и возвращать путешественника к результатам поиска, а не оставлять его на экране неудачного бронирования.
API-интерфейсы для путешествий работают с реальными данными, которые меняются ежесекундно. Места продаются, срок действия тарифов истекает, а время ответа API иногда истекает. API бронирования производственного уровня должен корректно справляться со всем этим. Встройте в уровень обработки ошибок следующее:
Интеграция GDS для туристических агентств на производственном уровне требуется соответствующая безопасность API, прежде чем вы станете публично раскрывать какие-либо конечные точки. Ваш шлюз API должен обеспечить следующее:
Amadeus предоставляет комплексную среду тестирования с смоделированными данными. Используйте эту среду для создания и запуска полного набора тестов перед переключением на рабочие учетные данные. Ваши тесты должны охватывать:
Не пропускайте этот шаг. Проблемы, возникающие в процессе эксплуатации при активном бронировании, обходятся гораздо дороже, чем проблемы, обнаруженные во время тестирования с использованием смоделированных данных.
После завершения тестирования и готовности вашего API к производству последним шагом станет его публикация для использования вашими потребителями. Независимо от того, является ли ваш API внутренним, используемым только вашим собственным порталом, или внешним, предлагаемым другим агентствам или разработчикам, управление версиями с самого начала избавит вас от значительных проблем в дальнейшем.
Поиск рейсов по своей сути является дорогостоящим с точки зрения вызовов API. Каждый поиск попадает в Amadeus в режиме реального времени, и в масштабе совокупная стоимость использования API и задержка ответа могут стать серьезной операционной проблемой. Хорошо спроектированный уровень кэширования решает обе проблемы.
Ключевой принцип заключается в том, что данные о доступности рейсов относительно стабильны в течение короткого временного интервала. Поиск рейсов из Лондона в Дубай на определенную дату вряд ли выдаст совершенно другие результаты через 60 секунд. Кэшируя идентичные результаты поиска на срок от 60 до 120 секунд, вы можете мгновенно обслуживать повторяющиеся запросы, не сжигая дополнительную квоту API Amadeus.
Используйте Redis в качестве уровня кэширования. Создайте согласованный ключ кэша на основе параметров поиска, включая пункт отправления, пункт назначения, дату, пассажиров и салон, а затем сохраните полный ответ Amadeus на этот ключ с TTL, соответствующим вашему варианту использования. Для ценообразования и бронирования никогда не кэшируйте. Всегда извлекайте актуальные данные на этих этапах.
Переход сразу к производственным учетным данным без тщательного тестирования в среде «песочницы» приводит к ошибкам при бронировании с реальными деньгами путешественника. Всегда завершайте свой набор тестов в тестовой среде Amadeus, прежде чем запрашивать доступ к рабочей среде.
Срок действия токенов OAuth истекает. Если ваше приложение не обрабатывает обновление токена автоматически, ваш API начнет возвращать ошибки аутентификации в середине сеанса. Встраивайте управление токенами в основу своей интеграции, а не как второстепенную мысль.
Amadeus возвращает правила и условия тарифов для каждого предложения. Ваш API должен предоставлять их конечному пользователю перед бронированием. Бронирование без указания условий возврата и изменения является серьезным источником споров и возвратных платежей после бронирования.
Amadeus налагает ограничения на скорость для всех уровней API. Создание слоя поиска, который отправляет неограниченное количество запросов к Amadeus без какого-либо регулирования, приведет к возникновению ошибок 429 и снижению производительности для всех пользователей. Создайте обработку ограничения скорости с самого начала.
Никогда не кодируйте ключ и секрет API Amadeus жестко в коде приложения и не используйте их для контроля версий. Используйте переменные среды и менеджер секретов для обеспечения безопасности учетных данных.
Создание API-интерфейса бронирования путешествий промышленного уровня с интеграцией Amadeus GDS требует глубоких знаний как в платформе Amadeus, так и в рабочих процессах туристической индустрии. В Конечная остановка полетаМы предоставили индивидуальные решения в области туристических технологий для туристических агентств, агрегаторов и компаний, занимающихся туристическими технологиями, на различных рынках.
Вот что мы предлагаем по всему спектру наших решений:
Часто задаваемые вопросы
Базовая интеграция, включающая поиск рейсов, ценообразование и бронирование, может быть реализована за шесть-восемь недель с помощью опытной команды разработчиков. Полный API производственного уровня с кэшированием, обработкой ошибок, мониторингом и документацией обычно занимает три-четыре месяца.
Для тестирования и разработки по программе Amadeus for Developers вам не нужен номер IATA. Для производственного доступа к актуальному инвентарю и выдачи реальных билетов вам потребуется либо прямая аккредитация IATA, либо отношения с туристическим агентством, аккредитованным IATA, которое спонсирует ваш доступ к GDS.
Да. Многие компании, занимающиеся туристическими технологиями, строятпорталы «white label» помимо интеграции API Amadeus GDS. Ваша платформа централизованно управляет подключением к GDS, и каждое агентство использует вашу платформу под своим собственным брендом. Вам необходимо убедиться, что ваше соглашение с Amadeus разрешает такой тип использования.
Традиционный контент GDS состоит из тарифов на основе EDIFACT, распространяемых через стандартный канал GDS. Контент NDC поступает непосредственно от авиакомпаний через их API NDC и может включать тарифы, пакеты и дополнительные услуги, недоступные через традиционный канал GDS. Amadeus поддерживает оба типа, и хорошо построенный API должен быть способен обрабатывать оба типа контента.
Amadeus не обрабатывает платежи напрямую. Ваш API бронирования должен интегрировать платежный шлюз, такой как Stripe, Braintree или специальный платежный процессор для путешествий, с процессом бронирования Amadeus. Платеж должен быть зафиксирован после подтверждения цены и до окончательного бронирования в Amadeus, чтобы свести к минимуму риск получения платежа за бронирование, которое впоследствии не удастся.