Инструменты пользователя

Инструменты сайта


wiki:plugin:repository:api

Репозиторий расширений

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 – Данные в кодировке YAML
  • php – 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>
Только авторизованные участники могут оставлять комментарии.
wiki/plugin/repository/api.txt · Последнее изменение: 2025/02/09 15:27 — vladpolskiy