REST API для разработчиков
API Центрального пульта относится к категории REpresentational State Transfer (REST). Это значит, что возможно выполнять RESTful-операции на добавление, чтение, изменение и удаление информации для облачной учетной записи или инсталляции на сервере.
Описания методов можно найти здесь: https://api.cpult.ru/ |
Возможности REST API
Любые операции или действия, доступные в web-интерфейсе системы, могут быть реализованы с помощью API, например:
-
получение списка объектов,
-
получение иерархической структуры объектов,
-
получение текущего статуса объектов и истории их состояний,
-
настройка свойств объектов,
-
получение свойств объектов,
-
получение параметров объектов,
-
работа с авариями,
и многое другое.
Доступные API-методы
API-платформы реализованы как "JSON over HTTP" и предоставляют возможность использовать следующие методы:
Метод | Назначение |
---|---|
GET |
Получение данных о существующих объектах |
POST |
Создание новых объектов |
PUT |
Обновление и изменение существующих объектов |
PATCH |
Обновление и изменение существующих объектов |
DELETE |
Удаление существующих объектов |
Права на выполнение операций
Доступ к данным и возможность выполнения тех или иных операций зависят от соответствующих прав учётной записи пользователя.
Аутентификация
Есть несколько способов, которые можно использовать для аутентификации при работе с API системы.
Basic Access Authorization
Базовая аутентификация может быть использована для получения данных об учётной записи следующим образом:
$ curl -v -u login:password -H "Content-Type: application/json" -X GET https://your.server.name/node/api/users/current
где:
-
login – логин учётной записи,
-
password – пароль,
-
your.server.name – адрес сервера.
Session ID (Cookie)
Система позволяет сохранять идентификатор сессии, например в cookie, и использовать его в последующих запросах:
$ curl -v --cookie-jar cookies.txt -H "Content-Type: application/json" -X POST --data '{"login": "login", "password": "password"}' https://your.server.name/node/api/users/session
curl -v --cookie cookies.txt -H "Content-Type: application/json" -X GET https://your.server.name/node/api/users/current
$.ajax
({
type: "POST",
url: "https://your.server.name/node/api/users/session",
dataType: 'json',
async: true,
data:
{
"login": "login",
"password": "password"
},
success: function (res){
console.log('Thanks for your login!');
console.log('Session ID:'+res);
},
error: function () {
console.log('Login failed!');
}
});
где:
-
login – логин учётной записи,
-
password – пароль,
-
your.server.name – адрес сервера.
API Key (API Token)
Этот метод аутентификации может быть отключён. Параметр серверной конфигурации server.user.auth_token_enabled отключает аутентификацию с помощью токенов. Параметр конфигурации Web-приложения authTokenEnabled отключает отображение поля Ссылка для авторизации в Web-интерфейсе. |
Для получения API-токена необходимо:
-
Войти в web-интерфейс системы.
-
Нажать кнопку с именем учётной записи в правом верхнем углу.
-
Открыть окно конфигурации системы.
API-токен будет указан в поле Ссылка для авторизации: https://your.server.name/?auth-token=52cc80e1-e2d8-4cff-a242-dfcfb538b585.
Его можно использовать в каждом запросе:
$ curl -v -H "Content-Type: application/json" -X GET https://your.server.name/node/api/users/current?api-token=52cc80e1-e2d8-4cff-a242-dfcfb538b585
где:
-
your.server.name – адрес сервера.