Розповідаємо про розробку API для сервісу порівняння цін на послуги бронювання, створений командою Abto Software. Часові межі роботи — з квітня по грудень 2022 року.
Наш клієнт – відома організація, що надає платформам-посередникам доступ до бронювання квитків та апартаментів безпосередньо у прямих перевізників та готелів. Компанія є лідером ринку, що надає сучасні, відповідні стандартам, B2B та Host2Host рішення, що спрощують бронювання готелів, курортів, авіаквитків, оренди автомобілів тощо.
Нашою метою було розробити унікальний API для прямого зв’язку з розподільчими системами. Команда Abto створила рішення, що дозволяє дистриб’юторам підключатися до постачальників послуг готельного бізнесу, авіакомпаній, транспорту, подорожей, розваг та інших популярних видів бронювання, щоб надавати свої послуги більш ефективно.
Команда та технології:
Стек технологій:
Java, String, Hibernate, Mongo DB, Docker, Java Spring, REST API, SOAP API.
Команда:
project manager, frontend engineer, 2 backend developers.
Наші спеціалісти були запрошені до розробки системи, що могла б отримувати, зберігати актуальну інформацію в базі та надавати потрібні деталі такі як наявні номери, дати, ціни та інше.
Проєкт можна поділити на дві фази:
На першому етапі ми побудували агрегатор, що отримує та обробляє актуальну інформацію. Потім ця інформація використовується для надання послуг.
На другому етапі ми інтегрували миттєві повідомлення, щоб повідомляти зацікавлені сторони про зміни, пов’язані з новими розміщеними варіантами бронювання, скасованими бронюваннями та іншими деталями.
За допомогою запитів SOAP наша система регулярно збирає необхідні деталі з попередньо визначених джерел. Система збирає дані 1-3 рази на день, що дозволяє дистриб’юторам своєчасно оновлювати актуальну інформацію. При виявленні розміщених бронювань та скасувань, агрегатор надсилає повторні запити SOAP, оскільки це може вплинути на кінцеву вартість бронювання та інші деталі.
Коротко про процес :
Додатковий функціонал:
Інженери Abto успішно розробили агрегатор для збору та аналізу великого обсягу інформації, що надходить з численних джерел.
Ми забезпечили :
a. Аналіз ринку
b. Вибір та перевірку підходу
c. Розробку програмного забезпечення
d. Підтримку та обслуговування продукту
Забезпечення безперервної обробки запитів.
Ми створили унікальне багатопотокове рішення, що відправляє регулярні запити до постачальників на попередньо визначених інтервалах. Таким чином, ми мінімізуємо час на оновлення актуальних цін.
Крім того, ми реалізували кешування інформації на серверній стороні, щоб прискорити передачу даних. Таким чином, при виявленні повторних запитів з тими самими параметрами, ми можемо передавати деталі набагато швидше та відправляти миттєві повідомлення про зміни в цінах.
Мінімізація навантаження на сервер.
Однією з основних проблем з якою ми стикалися є те, що готелі часто не надають необхідну інформацію за одним запитом. У випадку з великими мережами готелів це означає, що для отримання актуальної інформації про наявність та ціни може знадобитися кілька запитів.
Щоб розв’язувати цю проблему, ми розробили та впровадили рішення, яке мінімізує навантаження на сервер постачальника. Як все працює? Рішення відправляє запити лише один раз на день вночі, після чого актуальна інформація оновлюється один або два рази протягом дня залежно від того, чи відбулися важливі зміни.
Забезпечення безпеки.
Щоб забезпечити відповідний рівень безпеки для SOAP API, ми додали безпечні токени.
Уніфікація різноманітних, неоднорідних відповідей.
Щоб забезпечити гетерогенні відповіді, ми реалізували рішення, яке дозволяє об’єднувати відповіді, що отримані від різних постачальників.