👋 Добро пожаловать

Выберите категорию API слева или воспользуйтесь поиском

🔧 Принцип работы

За взаимодействие отвечает файл /api.php. Все запросы обрабатываются единой точкой входа с поддержкой методов GET и POST.

📥 Входящие параметры

✓ Обязательные параметры:

  • key — ваш API ключ для аутентификации
  • cat — категория запроса (см. список категорий в навигации слева)

⊘ Опциональные параметры:

  • skip_internal_api — флаг отключения внутренних триггеров системы. Используйте, когда ваш метод API реагирует на триггеры, чтобы избежать бесконечного цикла
  • Дополнительные параметры (зависят от выбранной категории — подробнее в соответствующих разделах):
    • customer_id — уникальный идентификатор абонента
    • is_potential — флаг потенциального статуса (значение: 1 или 0). Большинство флагов имеют префикс is
    • lang — язык ответа для локализированных объектов. По умолчанию: en

📤 Пример запроса

GET /api.php?key=apikey&cat=abon&action=msg&usercode=1

📊 Возвращаемые данные

При выполнении операции или запросе информации API возвращает JSON-объект следующего формата:

{
  "Result": "OK" | "ERROR",
  "ErrorText": "Описание ошибки (если применимо)"
}

Рекомендация: Всегда проверяйте HTTP-статус ответа. При ошибках или некорректных запросах код будет отличаться от 200 (например, 400, 401, 404, 500).

🔐 Конфигурация API-ключей

Система САП "CUBALINK" требует наличия API-ключей для обеспечения работоспособности и контроля доступа внешних интеграций. API-ключ представляет собой произвольную текстовую последовательность, которая не должна быть пустой.

⚙️ Настройка ключей доступа

Конфигурация осуществляется через параметр $apiKeyArray в файле /legacy/Config/config.php. С помощью этого массива вы можете:

  • Определить различные ключи для различных источников запросов
  • Установить ограничения по IP-адресам для каждого ключа
  • Задать список разрешённых секций API для конкретного ключа

📝 Базовая конфигурация

$apiKeyArray = [
   [
       'key' => 'mainKey',
       'ip' => '*'
   ],
   [
       'key' => 'key-local',
       'ip' => '127.0.0.1',
       'section' => [
           'customer',
           'node',
           'employee/get_data', //можно настраивать конкретные разделы
       ]
   ]
];

🌐 IP-адреса и их использование

При указании IP-адресов следуйте этим рекомендациям:

  • Текстовый формат: Все адреса должны быть записаны как строки
  • Любой адрес: Подстановочный символ "*" разрешает использование ключа с любого IP
  • Множественные IP-адреса: Для одного ключа, чтобы добавить несколько адресов, создавайте отдельные элементы массива с одинаковым ключом, но разными IP

💡 Пример с множественными IP-адресами

$apiKeyArray = [
   [
       'key' => 'mainKey',
       'ip' => '*'
   ],
   [
       'key' => 'key-local',
       'ip' => '127.0.0.1'
   ],
   [
       'key' => 'key-local',
       'ip' => '192.168.100.30',
       'section' => [
           'customer',
           'node',
           'employee/get_data', //можно настраивать конкретные разделы
       ]
   ],
   [
       'key' => 'key-local',
       'ip' => '192.168.100.20',
       'section' => [
           'task',
           'node'
       ]
   ]
];

Примечание: Этот подход позволяет гибко контролировать доступ, предоставляя одному ключу разные права для различных сетевых местоположений.

© @kirush80