Skip to main content

Примеры запросов к API

После первоначальной установки необходимо написать скрипт, который будет изменять настройки пользователей. Настройки меняются при помощи HTTP-запросов к ISP Go API. В примерах ниже для генерации запросов используется curl из командной строки. Программистам на PHP может оказаться полезным официальное руководство от соответствующего PHP-расширения: http://ru2.php.net/manual/ru/ref.curl.php

aep - это user_id пользователя назначаемый провайдером.

Пример обращения к API из скриптов шелла с консоли

# Установка и удаление IP пользователя
curl -X PUT -d '["192.168.5.1"]' http://api.isp.ru/users/aep/ip/
curl http://api.isp.ru/users/aep/ip/
curl -X DELETE http://api.isp.ru/users/aep/ip/
curl http://api.isp.ru/users/aep/ip/
curl -X PUT -d '["192.168.5.1"]' http://api.isp.ru/users/aep/ip/

# Список категорий в json.
curl http://api.isp.ru/categories/
curl http://api.isp.ru/categorygroups/

# Глобальный белый список
# Замена всего списка
curl -X PUT -d '["gazeta.ru", "lenta.ru"]'
http://api.isp.ru/whitelist/
curl http://api.isp.ru/whitelist/
# Добавление и удаление по одной записи
curl -X POST -d '["gazeta.ru"]' http://api.isp.ru/whitelist/
curl -X DELETE http://api.isp.ru/whitelist/lenta.ru
curl http://api.isp.ru/whitelist/
# Глобальный черный список работает аналогично

curl http://api.isp.ru/blacklist/

# Настройка фильтра:
# Полная замена списка заблокированных категорий:
curl -X PUT -d '[3, 4, 5, 11]' http://api.isp.ru/users/aep/filter/
# Добавление и удаление по одной категории:
curl -X POST -d '[6]' http://api.isp.ru/users/aep/filter/
curl -X DELETE http://api.isp.ru/users/aep/filter/5
curl http://api.isp.ru/users/aep/filter/

# Пользовательские черно-белые списки:
# Полная замена:
curl -X PUT -d '["black.ru", "orange.ru", "red.ru", "blue.ru"]'
http://api.isp.ru/users/aep/blacklist/
# Добавление и удаление по одному домену:
curl -X POST -d '["antigreen.ru"]'
http://api.isp.ru/users/aep/blacklist/
curl -X DELETE http://api.isp.ru/users/aep/blacklist/orange.ru
curl http://api.isp.ru/users/aep/blacklist/
# Белый список работает аналогично

curl http://api.isp.ru/users/aep/whitelist/

Для работы пользователя в режиме «запрещено все, кроме того, что явно занесено в белый список», надо занести корневой домен в черный список:

curl -X POST -d '["-"]' http://api.isp.ru/users/aep/blacklist/

Для удаления корневого домена:

curl -X DELETE http://api.isp.ru/users/aep/blacklist/-

ВНИМАНИЕ. Существует неудаляемый и нередактируемый белый список с наивысшим приоритетом, не доступный ни через один интерфейс администрирования, в который входят адреса skydns.ru, сайты обновления антивирусов, сайты обновления Windows и т.п.

Пример скрипта на php для обращения к API

<?php
// Файл примеров требует установленного расширения PHP curl
// Адрес сервера API
$server = 'http://api.isp.ru';

function api_request($url, $method = 'GET', $data = null) {
    $ch = curl_init($url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    if (!is_null($data)) curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $out = curl_exec($ch);

    $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    switch ($return_code) {
        case 200:
            if (strlen($out)) return json_decode($out);
            else return "OKrn";
            break;
        case 400:
            throw new Exception('Bad request');
            break;
        default:
            throw new Exception('Error');
    }
}

/*
Запись о пользователе создается автоматически при попытке
попытке записи какой-либо информации о нем
*/

// Добавляет пользователю c идентификатором aep ip-адрес 192.168.5.1
print api_request($server."/users/aep/ip/", 'POST',
'["192.168.5.1"]');

// Заменяет список ip-адресов пользователя aep на 192.168.5.1,
192.168.5.2
print api_request($server."/users/aep/ip/", 'PUT', '["192.168.5.1",
"192.168.5.2"]');

// Удаляет ip-адресов 192.168.5.1 из списка адресов пользователя aep
print api_request($server."/users/aep/ip/192.168.5.1", 'DELETE');

// Возвращает список ip-адресов пользователя aep
$result = api_request($server."/users/aep/ip/", 'GET');
var_dump($result);

// Удаляет весь список ip-адресов пользователя aep
print api_request($server."/users/aep/ip/", 'DELETE');
?>