Все настройки 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 |