This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

API

Все настройки SHM и всё управление системой осуществляется с помощью вызовов API.

Web интерфейс администратора и кабинет клиента работают на основе API.

HTTP Методы

SHM API использует стандартные методы протокола HTTP:

Метод Назначение
GET Чтение данных
POST Изменение данных
PUT Добавление данных
DELETE Удаление данных

SHM API v1 отвечает в следующем формате:

{
    data: [
        {
            item: 1
        },
        {
            item: 2
        }
    ],
    items: 2
}

HTTP коды ответов

При работе с SHM API рекомендуется проверять коды ответов HTTP.

200 - УСПЕХ для GET, POST, PUT запросов

201 - УСПЕХ для DELETE запросов (эти запросы не возвращают ответа в теле)

400 - ошибка запроса, неверные или недостающие аргументы

403 - не авторизован, требуется авторизация

404 - объект не найден

5xx - ошибки сервера

Аутентификация

Аутентификация через Cookies (session_id)

Получаем session_id:

curl -H "Content-Type: application/json" \
     -X POST http://$SERVER/shm/user/auth.cgi \
     -d '{"login": "admin", "password": "admin"}'

пример ответа:

{ "session_id": "3f928c835ff78f836c4066c112b292c5" }

Запрос с использованием cookies (session_id):

curl --cookie "session_id=3f928c835ff78f836c4066c112b292c5" http://$SERVER/shm/v1/user

Basic-аутентификация

curl -u "admin:admin" http://$SERVER/shm/v1/user

Аутентификация через header-ы

curl -H "session-id: 3f928c835ff78f836c4066c112b292c5" http://$SERVER/shm/v1/user
curl -H "login: admin" -H "password: admin" http://$SERVER/shm/v1/user

Аутентификация через Query string

curl http://$SERVER/shm/v1/user?session_id=3f928c835ff78f836c4066c112b292c5

Список ресурсов

Ресурс URL
Услуги /v1/admin/service
Услуги дочерние /v1/admin/service/children
События услуг /v1/admin/service/event
Пользователи /v1/admin/user
Смена пароля пользователя /v1/admin/user/passwd
Платежи пользователя /v1/admin/user/pay
Зачисление платежей /v1/admin/user/payment
Профиль пользователя /v1/admin/user/profile
Услуги пользователя /v1/admin/user/service
Услуги пользователя - списания /v1/admin/user/service/withdraw
Блокировка услуги пользователя /v1/admin/user/service/stop
Список текущих задач для услуги /v1/admin/user/service/spool

1 - Конфигурация

2 - Приём платежей

Пример зачисления платежа клиенту

Платеж возможно зачислить только из под прав администратора

curl -u "login:password" \
     -H "Content-Type: application/json" \
     -X PUT http://$SHM_URL/shm/v1/admin/user/payment \
     -d '{"user_id": 1, "money": 123.45, "pay_system_id": "manual"}'

Где:

  • user_id - идентификатор пользователя для зачисления
  • money - сумма для зачисления
  • pay_system_id - идентификатор платежной системы. Произвольное слово, длиной не более 16 символов

3 - Шаблоны

Пример обновления шаблона wg_manager

curl -u "admin:admin" \
     -X "POST" \
     -H "Content-Type: text/html; charset=utf-8" \
     http://$SHM_URL/shm/v1/admin/template/wg_manager \
     --data-binary @shm_actions_script.sh