API категоризации доменов
Назначение API категоризации доменов SkyDNS
API категоризации сайтов предназначено для того чтобы предоставить разработчикам и сторонним системам быстрый и легкий способ получения данных из базы категорированных сайтов SkyDNS. API предназначено для интеграции с другими системами, где требуется проверка категорий сайтов (системы фильтрации, рекламные системы и т.п.). API категоризации сайтов использует стандартную спецификацию JSON для обработки запросов. API не предназначено для доступа к нему конечных пользователей интегрируемой системы, а должно запрашиваться с промежуточного сервера интегрируемой системы.
Для целей повышения скорости обработки, данные выдаваемые API категоризации сайтов могут быть кэшированы на стороне интегрируемой системы на срок не более 12 часов.
Как работать с API категоризации сайтов
Все русскоязычные тексты выдаются в формате Unicode, пример «\u0424\u0438\u0448\u0438\u043d\u0433».
Адреса доступа к API категоризации сайтов
Для доступа к API вы можете использовать следующие адреса:
- z.api.skydns.ru - для целей тестирования и анонимного доступа (количество запросов ограничено 10 запросами в минуту)
- x.api.skydns.ru – для зарегистрированных пользователей (без ограничения числа запросов)
Авторизация
Для запросов к x.api.skydns.ru нужно использовать Basic Authorization. Нужно передавать специальный HTTP заголовок Authorization в каждом запросе. В заголовке Authorization передается строка <client_id>:<client_secret>
, закодированная методом base64. При этом следует указывать базовый (Basic) метод авторизации.
Пример заголовка:
Authorization: Basic Ndc2MDE4N2Q4MWJjNGI3Nzk5NDc2YjQycjUxMDM3MTM6ZjI1YmViZjk5MWZmNDE5ODkzZGIyNTU3MjhlNGUxZGU=
Получение списка категорий веб сайта
Запрос:
GET http://skydns-api/domain/www.website.com
Вернет результат в формате JSON (номера категорий, флаг хороший/плохой, имена категорий):
{ "category": [3, 6], "bad": true, "category_name": [ "Сайты, распространяющие вирусы", "Наркотики" ] }
Получение списка категорий URL
Запрос:
GET http://skydns-api/url/http://www.website.com/path/to?arg=val
Вернет результат в формате JSON (номера категорий, флаг хороший/плохой, имена категорий):
{ "category": [3, 6], "bad": true, "category_name": [ "Сайты, распространяющие вирусы", "Наркотики" ] }
Получение списка категорий
Запрос:
GET http://skydns-api/catgroups
Вернет результат в формате JSON:
[ {"Черные сайты": { "3":"Сайты, распространяющие вирусы", "4":"Фишинг", "6":"Наркотики", } }, {"Сайты для взрослых": { "13":"Сайты для взрослых", "14":"Алкоголь и табак", } }, ]
Запросы
Если домен категоризирован, API возвращает код 200, название категории и ее номер.
curl --user <client_id>:<client_secret> https://x.api.skydns.ru/domain/website.com
StatusCode : 200 StatusDescription : OK Content : { "category": [49], "bad": false, "category_name": ["Сайты, распространяющие вирусы", "Наркотики"] }
Если домен не существует, API возвращает код 206, категорию 0 и NXDOMAIN.
curl --user <client_id>:<client_secret> https://x.api.skydns.ru/domain/does.not.exist
StatusCode : 206 StatusDescription : Partial Content Content : {"category": [0], "bad": false, "category_name": ["Non-Existing Domain"]}
Если домен не категоризирован, API возвращает код 404 без JSON.
curl --user <client_id>:<client_secret> https://x.api.skydns.ru/domain/com
StatusCode : 404 Content : The remote server returned an error: (404) Not Found.