Примеры запросов к 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'); ?>