GrabDuck

API в middleware Stalker — IT-артель «Сусоров и Ко»

:

Для взаимодействия между Сталкером и внешним миром существует API. Нюанс в том, что этих API три штуки:

  • SOAP API
  • REST API v.1
  • REST API v.2

В документации этот момент описан как-то невнятно и в результате на понимание деталей уходит время.

SOAP API — позволяет заводить аккаунты пользователей в мидлваре, изменять информацию об этих аккаунтах, удалять их, устанавливать тариф и подписывать аккаунт на дополнительные подписки и, соответственно, получать информацию обо всех или определенном аккаунте (выборка делается по логину и MAC-адресу приставки). Как следует из названия — работает API через SOAP. Библиотека-клиент на PHP прилагается.

REST API v.1 — это обычный HTTP API, запросы делаются с помощью GET, POST, PUT и DELETE запросов. В ответ прилетает JSON. Именно это API наиболее полно позволяет управлять мидлваре. Помимо базовых функций, которые есть в SOAP API, можно тонко настраивать аккаунты, управлять списком сервисов и тарифов и т.п. Полная документация доступна на сайте Инфомира. Если необходимо обеспечить полноценную интеграцию мидлваре и биллинга — нужно использовать именно это API.

REST API v.2 — исходя из названия, можно предположить, что это вторая (и, вероятно, улучшенная) версия REST API. И что с его помощью можно получить еще больше гибкости в управлении мидлваре. Но это не так. В REST API v.2 вообще нет управления пользователями или тарифами. Оно используется не для управления мидлваре, а для его взаимодействия с внешними модулями. По информации найденной в Google-группе, изначально планировалось, что REST API v.2 расширит методы REST API v.1. Но по факту от этого отказались, а название не поменяли. Соответственно, если необходимо создать модуль или какое-то иное расширение для мидлваре — нужно применять REST API v.2.

Что бы REST API v.2 функционировал, необходимо завести специальный домен: v2.api.middleware_url.tld и в конфигурации Apache завести виртуальный хост с этим доменом и корневой директорией /var/www/middleware/stalker_portal/api/.

Так же, не забываем включить API в конфиге Сталкера (/stalker_porta/server/custom.ini) при помощи добавления следующих строк:

1
2
3
enable_api = true
api_auth_login = логин_для_авторизации_при_доступе_к_API
api_auth_password = пароль_для_авторизации_при_доступе_к_API

enable_api = true api_auth_login = логин_для_авторизации_при_доступе_к_API api_auth_password = пароль_для_авторизации_при_доступе_к_API

И начиная с версии 4.9.9, если нужен SOAP, включить его:

API в middleware Stalker