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
Изменено 27.01.2023: Update _index.md (8095a37)