379
edits
Changes
no edit summary
==Общее описание==
Сервисное API движка предназначено в первую очередь для предоставления сторонним приложениям возможности узнать, активированы ли какие-либо премиум-опции для движка, с которым работает приложение. Также API предоставляет возможность активировать нужную опцию от имени приложения.
Сервисное API движка работает на порту 6878, если не указан другой порт опцией <tt>--http-port</tt>.
API работает по протоколу HTTP. Запросы отсылаются на адрес <tt><nowiki>http://localhost:6878/webui/api/service</nowiki></tt>
Ответы в формате JSON.
==Методы API==
Каждый запрос к API должен иметь обязательный параметр <tt>method</tt>, содержащий название вызываемого метода.
Ниже приведен список всех доступных методов.
===check_user_key===
Проверить, загружен ли указанный ключ пользователя в движок.
параметры:
* '''key''' (''string'') - ключ пользователя
варианты ответов:
* '''{"status": "ok"}''' - указанный ключ загружен в движок
* '''{"status": "not_found"}''' - указанный ключ не загружен в движок
* '''{“status”: “error”, "error": "error description"}''' - при обработке запроса возникла ошибка
пример запроса:
<nowiki>http://localhost:6878/webui/api/service?method=check_user_key&user_key=1111-2222-3333-4444</nowiki>
ответ:
<nowiki>{"status": "not_found"}</nowiki>
===check_product_user_keys===
Проверка наличия ключей пользователя для конкретного продукта.
параметры:
* '''product_key''' (''string'') - публичная часть ключа продукта
варианты ответов:
* '''{"status": "ok"}''' - в движок загружен как минимум один ключ для указанного приложения
* '''{"status": "not_found"}''' - ключей для указанного приложения нет
* '''{“status”: “error”, "error": "error description"}''' - при обработке запроса возникла ошибка
пример запроса:
<nowiki>http://localhost:6878/webui/api/service?method=check_product_user_keys&product_key=1111</nowiki>
ответ:
<nowiki>{"status": "ok"}</nowiki>
===load_extension===
Загрузка файла-расширения в движок
Чтобы загрузить файл расширения в движок, нужно отправить POST запрос на адрес <nowiki>http://localhost:6878/webui/api/service?method=load_extension</nowiki>
В теле запроса нужно передать содержимое файла расширения, полученное с помощью метода API для реселлеров [[Reseller_API#createUserKey|createUserKey]]
варианты ответов:
* '''{"status": "ok"}''' - расширение успешно загружено в движок
* '''{“status”: “error”, "error": "error description"}''' - при обработке запроса возникла ошибка
пример запроса:
<nowiki>http://localhost:6878/webui/api/service?method=load_extension</nowiki>
ответ:
<nowiki>{"status": "ok"}</nowiki>
===get_services===
Получить список премиум-опций, активированных на движке.
Если передается параметр <tt>product_key</tt>, то возвращается список опций, доступных для всех приложений, а также опций, доступных только для указанного приложения.
Если параметр <tt>product_key</tt> не передается, то возвращается только список опций, доступных для всех приложений.
параметры:
* '''product_key''' (''string'') - необязательный параметр, в котором передается публичная часть ключа продукта
пример запроса:
<nowiki>http://127.0.0.1localhost:6878/webui/appapi/servicesservice?method=get_services&product_key=1111</getnowiki>
Формат ответа - массив объектов, каждый из которых описывает одну премиум-опцию.
Пример:
<nowiki>{
“status”: “ok”,
“services”:
[
{
"id": "noAds",
"name": "No ADs",
"valid_from": 1376939146,
"valid_to": 1411671946,
"trial": false,
"description": "\u041e\u0442\u043a\u043b\
}
}</nowiki>
или
<nowiki>{“status”: “error”, “error”: “error description”}</nowiki>
Поля:
* '''<tt> nameid''' (string) </tt>''string'') - названиеидентификатор опции
* '''name''' (''string'') - название опции
* '''<tt> valid_tovalid_from''' (integer) </tt>''integer'') - дата, пос которуюкоторой опция активна (unix timestamp)
* '''valid_to''' (''integer'') - дата, по которую опция активна (unix timestamp)
* '''trial''' (''boolean'') - true, если опция активирована бесплатно на тестовый период
* '''description''' (''string'') - описание опции