6. Функциональные возможности системы
Программное обеспечение «Apichannel» предоставляет следующие функциональные возможности:
1. Управление номерами и тарифами:
− получение списка номеров и тарифных планов средства размещения по идентификатору (GET /api/rooms-and-rate-plans);
− фильтрация по параметрам: тип номера, тарифный план, занятость, период;
− поддержка нетто-цен и публичных тарифов;
− обновление цен, квот и ограничений от контрагентов/поставщиков (POST /api/hotels/update).
2. Управление заказами (бронированиями):
− создание нового бронирования (POST /api/orders);
− изменение существующего бронирования (PATCH /api/orders/{id});
− получение информации о заказе или списка заказов по средству размещения (GET /api/orders/{id}, GET /api/orders);
− подтверждение бронирования (POST /api/orders/{id}/confirm);
− отмена бронирования (PATCH /api/orders/{id}/cancel);
− поддерживаемые статусы заказа: NEW, CONFIRMED, MODIFIED, CANCELLED.
3. Legacy API-канал (обратная совместимость):
− поддержка единой точки входа POST /api/connect.php для интеграции с ранее подключёнными партнёрами;
− автоматическое проксирование legacy-запросов на REST-эндпоинты в зависимости от параметра method:
− getRoomsAndRatePlans → GET /api/rooms-and-rate-plans;
− update → POST /api/hotels/update;
− order (action: get / conf / createBooking / modifyBooking / cancelBooking) → соответствующие REST-операции.
4. Аутентификация и авторизация:
− идентификация контрагента по API-ключу (передаётся в поле key);
− валидация ключа и получение профиля контрагента при каждом запросе;
− возврат стандартизированных ошибок доступа (403 Access denied).
5. Оплата и финансовые параметры:
− поддержка методов оплаты: безналичный расчёт (PREPAY) и наличные (CASH);
− хранение и передача финансовых параметров бронирования (сумма, метод оплаты, статус).
6. Мониторинг и операционные возможности:
− проверка работоспособности сервиса и доступности базы данных: GET /healthz;
− сбор метрик Prometheus (HTTP-запросы, операции с БД): GET /metrics;
− публикация событий в Kafka-топики: логи запросов, обновления цен и квот от различных поставщиков (Bnovo, RealtyCalendar, Kontur. Otel, OtelMS и др.);
− интеграция с Sentry для отслеживания ошибок и трассировки.
7. Swagger / документация API:
− интерактивная документация доступна по адресу /swagger/index.html;
− спецификация OpenAPI 2.0 (swagger.yaml / swagger. json) актуализируется командой make swagger.