Содержание
API репозитория расширений
API позволяет запрашивать список доступных расширений DokuWiki. Он доступен по адресу https://www.dokuwiki.org/lib/plugins/pluginrepo/api.php
Этот API используется плагином Extension Manager Plugin.
/lib/plugins/pluginrepo/api.php?fmt=json&ext[]=plugin1&ext[]=plugin2
/lib/plugins/pluginrepo/api.php?fmt=json with &ext[]=plugin1, &tag[]=tag1, &mail[]=mail1, &type[]=4 and/or &q=text.
Команды
Использование cmd параметра определяет, что возвращается API.
ping– просто возвращает одну единицу, чтобы показать, что соединение работаетquery– действие запроса по умолчанию, описанное ниже
Форматы
Определяет формат вывода и указывается параметром fmt Может быть:
debug– print_r для удобного просмотраxml– XML не следует использовать, если этого можно избежатьyaml– Данные в кодировке YAMLphp– PHP сериализованные данныеjson– Данные в кодировке JSON (по умолчанию)- укажите имя обратного вызова в качестве
cbпараметра и это JSONP. пример:api.php?fmt=json&cb=my_callback
Фильтры
Все фильтры можно комбинировать и использовать функцию AND.
Имя расширения
Укажите одно или несколько имен в ext[] параметре. Префикс template: для шаблонов.
На данный момент только полные совпадения.
пример: api.php?ext[]=wrap&ext[]=template:ach
Полнотекстовый поиск
Параметр q позволяет задать полнотекстовый запрос (с расширением запроса). Если не limit указано, то ограничение устанавливается равным 50. Если не order указано, то результат сортируется по баллу результата.
Полнотекстовый индекс использует поля плагина, имени, описания, автора и тега.
пример: api.php?q=wrap
Тип
Для фильтрации по типу используйте type параметр, можно сложить несколько типов.
Поддерживается:
- 1 ⇒ 'Syntax',
- 2 ⇒ 'Admin',
- 4 ⇒ 'Action',
- 8 ⇒ 'Render',
- 16 ⇒ 'Helper',
- 32 ⇒ 'Template',
- 64 ⇒ 'Remote',
- 128 ⇒ 'Auth'
пример: api.php?type=5
Теги
Фильтрация по одному или нескольким тегам (ИЛИ) с использованием tag[] параметра.
На данный момент только полные совпадения.
пример: api.php?tag[]=media&tag[]=video
Электронная почта
Мы не раскрываем адреса электронной почты, чтобы избежать спама. Вместо этого используется MD5 адреса электронной почты в нижнем регистре. Вы можете использовать его для запроса по адресу(ам) электронной почты с помощью mail параметра.
пример: api.php?mail[]=4933823dc5f71300a20a506869fcf4d9
Заказ
Вы можете влиять на порядок результатов с помощью order параметра.
Поддерживаемые поля:
- последнееобновление
- популярность
- плагин ('по умолчанию')
- все остальные непроизводные поля БД
пример: api.php?order=lastupdate
Предел
Вы можете ограничить количество результатов с помощью limit параметра.
пример: api.php?limit=5
Old Repository API
/lib/plugins/pluginrepo/repository.php возвращает данные плагина/шаблона в виде XML. Можно использовать тот же синтаксис, что и для сортировки/фильтрации таблицы репозитория, а также запросить массив именованных плагинов.
Все еще используется, например Translate Tool
(см. код по ссылке [wiki]/lib/plugins/pluginrepo/repository.php?includetemplates=yes)
Доступные фильтры:
- плагины – [массив строк] возвращает только именованные плагины
- тип_плагина – [целое число] 1, 2, 4, 8, 16, 32=шаблоны
- plugintag – [string] фильтрует результат по плагинам с соответствующим тегом. Фильтровать по тегу и типу можно одновременно, хотя компонент синтаксиса таблицы обычно не использует эту функцию.
- pluginsort – [author/lastupdate/type/popularity/compatibility] результат сортируется по именованному полю. Также доступны сочетания клавиш (author=a).
- showall – [yes] возвращает плагины независимо от их безопасности или устаревшего статуса, обычно пропускается.
- includetemplates – [yes] возвращает шаблоны И плагины, обычно возвращаются только плагины. Объедините с
plugintype=32для возврата только шаблонов.
Пример вызова для получения данных о плагинах синтаксиса:
http://www.dokuwiki.org/lib/plugins/pluginrepo/repository.php?plugintype=1&plugintag=list
Пример вывода:
<repository> <plugin> <id>captcha</id> <dokulink>plugin:captcha</dokulink> <popularity>5947</popularity> <name>CAPTCHA Plugin</name> <description>Use an image verification (CAPTCHA) to defeat spambots</description> <author>Andreas Gohr</author> <type>Action, Helper</type> <lastupdate>2016-01-24</lastupdate> <compatible> <release>2015-08-10</release> <release>2014-09-29</release> <release>2014-05-05</release> <release>2013-12-08</release> </compatible> <securityissue></securityissue> <securitywarning></securitywarning> <tags> <tag>captcha</tag> <tag>spam</tag> </tags> <screenshoturl></screenshoturl> <thumbnailurl></thumbnailurl> <downloadurl>https://github.com/splitbrain/dokuwiki-plugin-captcha/zipball/master</downloadurl> <sourcerepo>https://github.com/splitbrain/dokuwiki-plugin-captcha</sourcerepo> <bugtracker>https://github.com/splitbrain/dokuwiki-plugin-captcha/issues</bugtracker> <donationurl>http://donate.dokuwiki.org/CAPTCHA</donationurl> <relations> <similar></similar> <conflicts></conflicts> <depends></depends> </relations> </plugin> <plugin> ... </plugin> ... </repository>
