Difference between revisions of "Engine Service API"
m (переименовал «Работа с ключами пользователей» в «Engine Service API») |
|||
Line 1: | Line 1: | ||
− | == | + | ==Общее описание== |
+ | Сервисное 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'') - необязательный параметр, в котором передается публичная часть ключа продукта | |
− | + | пример запроса: | |
− | http:// | + | <nowiki>http://localhost:6878/webui/api/service?method=get_services&product_key=1111</nowiki> |
Формат ответа - массив объектов, каждый из которых описывает одну премиум-опцию. | Формат ответа - массив объектов, каждый из которых описывает одну премиум-опцию. | ||
− | |||
Пример: | Пример: | ||
− | [ | + | <nowiki>{ |
+ | “status”: “ok”, | ||
+ | “services”: | ||
+ | [ | ||
{ | { | ||
− | + | "id": "noAds", | |
− | + | "name": "No ADs", | |
"valid_from": 1376939146, | "valid_from": 1376939146, | ||
"valid_to": 1411671946, | "valid_to": 1411671946, | ||
"trial": false, | "trial": false, | ||
− | |||
"description": "\u041e\u0442\u043a\u043b\ | "description": "\u041e\u0442\u043a\u043b\ | ||
− | + | u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u044b Ace Stream" | |
} | } | ||
− | + | ] | |
+ | }</nowiki> | ||
+ | |||
+ | или | ||
− | + | <nowiki>{“status”: “error”, “error”: “error description”}</nowiki> | |
− | * ''' | + | Поля: |
− | * ''' | + | * '''id''' (''string'') - идентификатор опции |
− | * ''' | + | * '''name''' (''string'') - название опции |
− | * ''' | + | * '''valid_from''' (''integer'') - дата, с которой опция активна (unix timestamp) |
− | * ''' | + | * '''valid_to''' (''integer'') - дата, по которую опция активна (unix timestamp) |
− | * ''' | + | * '''trial''' (''boolean'') - true, если опция активирована бесплатно на тестовый период |
+ | * '''description''' (''string'') - описание опции |
Revision as of 15:42, 27 May 2014
Contents
Общее описание
Сервисное API движка предназначено в первую очередь для предоставления сторонним приложениям возможности узнать, активированы ли какие-либо премиум-опции для движка, с которым работает приложение. Также API предоставляет возможность активировать нужную опцию от имени приложения.
Сервисное API движка работает на порту 6878, если не указан другой порт опцией --http-port.
API работает по протоколу HTTP. Запросы отсылаются на адрес http://localhost:6878/webui/api/service
Ответы в формате JSON.
Методы API
Каждый запрос к API должен иметь обязательный параметр method, содержащий название вызываемого метода.
Ниже приведен список всех доступных методов.
check_user_key
Проверить, загружен ли указанный ключ пользователя в движок.
параметры:
- key (string) - ключ пользователя
варианты ответов:
- {"status": "ok"} - указанный ключ загружен в движок
- {"status": "not_found"} - указанный ключ не загружен в движок
- {“status”: “error”, "error": "error description"} - при обработке запроса возникла ошибка
пример запроса:
http://localhost:6878/webui/api/service?method=check_user_key&user_key=1111-2222-3333-4444
ответ:
{"status": "not_found"}
check_product_user_keys
Проверка наличия ключей пользователя для конкретного продукта.
параметры:
- product_key (string) - публичная часть ключа продукта
варианты ответов:
- {"status": "ok"} - в движок загружен как минимум один ключ для указанного приложения
- {"status": "not_found"} - ключей для указанного приложения нет
- {“status”: “error”, "error": "error description"} - при обработке запроса возникла ошибка
пример запроса:
http://localhost:6878/webui/api/service?method=check_product_user_keys&product_key=1111
ответ:
{"status": "ok"}
load_extension
Загрузка файла-расширения в движок
Чтобы загрузить файл расширения в движок, нужно отправить POST запрос на адрес http://localhost:6878/webui/api/service?method=load_extension
В теле запроса нужно передать содержимое файла расширения, полученное с помощью метода API для реселлеров createUserKey
варианты ответов:
- {"status": "ok"} - расширение успешно загружено в движок
- {“status”: “error”, "error": "error description"} - при обработке запроса возникла ошибка
пример запроса:
http://localhost:6878/webui/api/service?method=load_extension
ответ:
{"status": "ok"}
get_services
Получить список премиум-опций, активированных на движке.
Если передается параметр product_key, то возвращается список опций, доступных для всех приложений, а также опций, доступных только для указанного приложения.
Если параметр product_key не передается, то возвращается только список опций, доступных для всех приложений.
параметры:
- product_key (string) - необязательный параметр, в котором передается публичная часть ключа продукта
пример запроса:
http://localhost:6878/webui/api/service?method=get_services&product_key=1111
Формат ответа - массив объектов, каждый из которых описывает одну премиум-опцию. Пример:
{ “status”: “ok”, “services”: [ { "id": "noAds", "name": "No ADs", "valid_from": 1376939146, "valid_to": 1411671946, "trial": false, "description": "\u041e\u0442\u043a\u043b\ u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u044b Ace Stream" } ] }
или
{“status”: “error”, “error”: “error description”}
Поля:
- id (string) - идентификатор опции
- name (string) - название опции
- valid_from (integer) - дата, с которой опция активна (unix timestamp)
- valid_to (integer) - дата, по которую опция активна (unix timestamp)
- trial (boolean) - true, если опция активирована бесплатно на тестовый период
- description (string) - описание опции