User Tools

Site Tools


ru:plugins:extend_api

This is an old revision of the document!


Работа с 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/?file=#####.php

Замените #####.php наименованием файла вашего плагина. Для того, чтобы данный метод работал корректно, перед загрузкой в Extend ваш плагин должен быть корректно упакован и структура его соответствующим образом организована. Кроме того, данный способ требует, чтобы имя файла вашего плагина было уникальным для Extend, учитывайте этот аспект, когда будете присваивать наименование своему плагину. Процедура проверки обновления плагинов, применяемая в GS v3.1+ также требует, чтобы имя главного файла плагина было уникальным. Пример ответа можно посмотреть здесь.

Формат ответа 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/plugins/extend_api.1381475298.txt.gz · Last modified: 2013/10/11 07:08 by Arkady