Инструкция по установке экземпляра
Программного обеспечения «Apichannel»,
предоставленного для проведения экспертной проверки

Для развёртывания сервиса используется Docker Compose — среда контейнеризации, которая автоматически поднимает приложение и базу данных с предзаполненными тестовыми данными. Продовые данные не используются.

Системные требования

  • Перед установкой убедитесь, что на компьютере установлен Docker Desktop (версия 24.0 и выше):
  • Минимальные характеристики: CPU 2 ядра, RAM 2 ГБ, свободное место на диске 3 ГБ.

Установка

1. Скачать архив с дистрибутивом по ссылке:
https://disk.360.yandex.ru/d/UVZUgB8Ua1WJow

2. Распаковать архив. В результате появится папка go-apichannel-demo/ со следующим содержимым:
go-apichannel
├── docker-compose.yml – конфигурация запуска
├── initdb/
│ └── 01_schema_and_seed.sql – схема и данные БД
└── app/
└── Dockerfile – сборка приложения
3. Запустить сборку и старт всех сервисов одной командой:
docker compose up --build -d
Docker автоматически:
— скачает образ MariaDB 10.11;
— создаст базы данных Apichannel, intranet, syslog и заполнит их тестовыми данными;
— соберёт и запустит сервис Apichannel.
4. Дождаться готовности сервиса. Проверить статус контейнеров:
docker compose ps
Оба контейнера должны отображаться со статусом running:
NAME
go-apichannel-db
go-apichannel-app
STATUS
running (healthy)
running
5. Проверить работоспособность сервиса — открыть в браузере:
http://localhost:8090/healthz
Ожидаемый ответ:
HTTP 200 { "status": "ok" }
6. Открыть интерактивную документацию API (Swagger UI):
http://localhost:8090/swagger/index.html
Здесь можно ознакомиться со всеми методами API и выполнить тестовые запросы прямо в браузере.
7. Для выполнения запросов к API использовать тестовый API-ключ тестового контрагента:
demo-api-key-aabbccddeeff001122334455
Пример запроса – получение номеров и тарифов тестового отеля:
GET http://localhost:8090/api/rooms-and-rate-plans?hotel_id=85430
X-API-Key: demo-api-key-aabbccddeeff001122334455
В базе данных заранее созданы:
— 1 тестовый отель (ID: 85 430);
— 3 номера с тарифами;
— 3 тестовых бронирования в статусах NEW, CONFIRMED;
— цены и квоты на 90 дней вперёд.
8. По завершении проверки остановить и удалить контейнеры:
docker compose down
Для полного удаления, включая данные базы:
docker compose down -v

Возможные проблемы:

1. Порт 8090 занят: в файле docker-compose.yml изменить «8090:80» на свободный порт, например «8091:80″, и обращаться по localhost:8091.

2. Контейнер не запускается: просмотреть логи командой docker compose logs app и убедиться в корректности настроек окружения.

3. Ошибка подключения к БД: выполнить docker compose down -v и повторно запустить docker compose up --build -d — это пересоздаст базу данных с нуля.

4. Ошибка сборки образа: убедитесь, что Docker Desktop запущен и есть доступ в интернет.

5. Сервис возвращает {"status»:"down"}: проверить раздел details в ответе — если все mysql_* в статусе up, сервис работает корректно; статус Kafka на работоспособность не влияет.