Как вызывать методы API в Astra?

API (Application Programming Interface) - это методы доступа к данным и взаимодействия с программными компонентами.

Вызов методов GET с помощью curl

Вы можете использовать curl в консоли для вызова метода API. Например, можно получить сводную информацию о состоянии процесса и системы:

curl \
    --user login:password \
    http://server:8000/api/system-status
  • login:password - логин и пароль администратора
  • server:8000 - адрес сервера и основной порт
  • /api/system-status - путь к методу API

Вызов метода POST с помощью curl

POST-методы, используемые для изменения конфигурации Astra. Например, можно переключить пользователя из консоли:

curl \
    -X POST \
    --user login:password \
    -d '{"cmd":"toggle-user","id":"login"}' \
    http://server:8000/control/
  • login:password - логин и пароль администратора
  • -d '{...}' - содержимое запроса в формате JSON
  • server:8000 - адрес сервера и основной порт

Другой способ выполнения curl где конфигурационный файл передается на стандартный вход:

curl -X POST --user login -d @- http://server:8000/control/ <<END
{
"cmd":"toogle-user",
"id":"login"
}
END

После запуска curl запрашивает пароль.

Вызов API с помощью PHP

Для управления Astra можно использовать любой язык программирования. Например, простой PHP-скрипт для переключения пользователя:

$req = json_encode(array(
    'cmd' => 'toggle-user',
    'id' => 'login',
));
$ch = curl_init("http://server:8000/control/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "login:password");
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);