====== Работа с Extend API ======
При создании секции сайта GetSimple Extend был разработан интерфейс (API) , позволяющий разработчикам получать данные из профиля в этой секции и интегрировать их в сайт или плагин. Например, разработчик теперь имеет возможность добавлять в плагины функционал автоматической проверки наличия обновления для своего плагина в Extend.
===== Синтаксис =====
**Запрос к репозиторию по ID плагина: **
http://get-simple.info/api/extend/?id=##
Замените ''##'' на ID плагина, присвоенного ему в репозитории Extend. Определить ID можно, залогинившись в Extend и посмотрев ID соответствующего файла. Например, ''http://get-simple.info/api/extend/?id=160'' даст ответ по плагину I18N Gallery.Такой способ дает 100% гарантию верного результата, так как ID плагина //никогда// не меняется вплоть до удаления плагина из репозитория. [[http://get-simple.info/api/extend/?id=30|Еще один пример]].
**Запрос по имени основного файла плагина: (только для плагинов)**
http://get-simple.info/api/extend/?file=#####.php
Замените ''#####.php'' наименованием файла вашего плагина. Для того, чтобы данный метод работал корректно, перед загрузкой в Extend ваш плагин должен быть корректно упакован и структура его [[ru:plugins:update_notifications|соответствующим образом организована]]. Кроме того, данный способ требует, чтобы имя файла вашего плагина было уникальным для Extend, учитывайте этот аспект, когда будете присваивать наименование своему плагину. Процедура проверки обновления плагинов, применяемая в GS v3.1+ также требует, чтобы имя главного файла плагина было уникальным. Пример ответа можно посмотреть [[http://get-simple.info/api/extend/?file=translate.php|здесь]].
===== Формат ответа API =====
Результат запросов к Extend API отдается в формате json и выглядит следующим образом:
{"status":"successful","id":"112","filename_id":"translate.php","name":"Translate","version":"0.3","category":"Plugin","tags":"translation, languages, internationalization, i18n","tested_with":"2.03","updated_date":"March 25, 2011","support_url":"http:\/\/get-simple.info\/forum\/topic\/1610\/translation-plugin\/","author_url":"http:\/\/mvlcek.bplaced.net","owner":"mvlcek","path":"http:\/\/get-simple.info\/extend\/plugin\/translate\/112\/","file":"http:\/\/get-simple.info\/extend\/export\/2902\/112\/translate.zip","downloads":"80","rating":""}
Так как мы получаем ответ в формате json, мы можем превратить его в PHP-объект с помощью ''json_decode($response)''. В результате мы получим следующий массив:
stdClass Object
(
[author_url] => http=>//mvlcek.bplaced.net
[category] => Plugin
[downloads] => 80
[file] => http=>//get-simple.info/extend/export/2902/112/translate.zip
[filename_id] => translate.php
[id] => 112
[name] => Translate
[owner] => mvlcek
[path] => http=>//get-simple.info/extend/plugin/translate/112/
[rating] => 4.8
[status] => successful
[support_url] => http=>//get-simple.info/forum/topic/1610/translation-plugin/
[tags] => translation, languages, internationalization, i18n
[tested_with] => 2.03
[updated_date] => March 25, 2011
[version] => 0.3
)
===== Пример PHP-кода =====
Этот фрагмент выведет номер последней версии нашего примера для плагина с ID = 30.
$my_plugin_id = 30; // замените своим ID
$apiback = file_get_contents('http://get-simple.info/api/extend/?id='.$my_plugin_id);
$response = json_decode($apiback);
if ($response->status == 'successful') {
// Successful api response sent back.
$current_ver = $response->version;
}
echo $current_ver;
===== Ограничения =====
Кэш Extend API обновляется один раз в четыре часа. Это сделано для уменьшения нагрузки на сервер, посему проверку обновления стоит осуществлять, принимая во внимание этот временной интервал. Разработчики советуют ответственно подходить к работе с Extend API дабы не создавать излишнюю нагрузку.
====== Ссылки ======
На главную [[ru:|Содержание]]
===== Страницы этой секции =====
=== Разработка плагинов ===
*[[ru:plugins:creation|Создание плагинов ]]
*[[ru:plugins:hooks_filters|Хуки и фильтры]]
*[[ru:plugins:tabs_menus|Вкладки и боковые меню]]
*[[ru:plugins:tips|Советы и рекомендации]]
*[[ru:plugins:update_notifications|Взаимодействие плагинов и секции Extend сайта get-simple.info]]