Содержание
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>