Довідка API MediaWiki
Це автоматично згенерована сторінка документації MediaWiki Action API.
General information
Статус: Усі функції, вказані на цій сторінці, мають працювати, але API далі перебуває в активній розробці і може змінитися у будь-який момент. Підпишіться на список розсилки mediawiki-api-announce, щоб помічати оновлення.
Хибні запити: Коли до API надсилаються хибні запити, буде відіслано HTTP-заголовок з ключем «MediaWiki-API-Error», а тоді і значення заголовку, і код помилки, надіслані назад, будуть встановлені з тим же значенням. Більше інформації див. на сторінці API: Помилки й попередження.
Тестування: Для зручності тестування запитів API, див. Special:ApiSandbox.
Request methods
Action API requests may use GET and POST methods. Prefer using the GET method, which allows requests to be routed to faster replica servers and responses to be cached, unless the length of the URL with parameters would exceed its length limit (commonly 8000 bytes), or a module only accepts POST requests.
Parameters for POST requests may be sent in the query part of the request URL (like in GET requests) and in the POST request body, and mixing both ways in one request is allowed. Certain parameters such as passwords must be sent in the request body. If the same parameter is sent as part of the URL and also in the request body, it must have the same value in both places.
Типи даних
Введені дані в MediaWiki мають бути в NFC-нормалізованому форматі UTF-8. MediaWiki може зробити спробу конвертувати дані в будь-якому іншому форматі, але це може спричинити невдачу деяких операцій (таких як редагування з перевірками MD5).
Параметри, які допускають два і більше значень, зазвичай подаються з цими значеннями, розділеними через вертикальну риску, напр., param=значення1|значення2 або param=значення1%7Cзначення2. Якщо ж значення повинно містити вертикальну риску, використовуйте U+001F (Unit Separator) як роздільник та додавайте до значення префікс U+001F, напр., param=%1Fзначення1%1Fзначення2.
Деякі типи параметрів у запитах до API потребують додаткових пояснень:
- boolean
Логічні типи даних працюють як чекбокси з галочками в HTML: якщо параметр вказано, незалежно від значення, то він розцінюється як «true». Для значення «false», уникніть параметра цілковито.
- expiry
Час може бути відносним (напр.,5 months чи 2 weeks) або абсолютним (напр., 2014-09-18T12:34:56Z). Щоб спостерігати за сторінкою безстроково, використовуйте infinite, indefinite, infinity, чи never.
- timestamp
Мітки часу можна вказувати в різних форматах, див. формати вводу з бібліотеки міток часу, задокументовані на mediawiki.org, щоб дізнатись більше. Рекомендовано використовувати дату й час у форматі ISO 8601: 2001-01-15T14:56:00Z. Можна використати рядок now для вказання поточного часу.
Limits
Most API modules can accept up to 50 inputs in multivalue parameters, and can return up to 500 results per query (50 results for slow queries).
For users with the apihighlimits right (Боти та Адміністратори), the limits are increased to 500 inputs and 5000 results (500 results for slow queries).
Шаблонні параметри
Шаблонні параметри підтримують випадки, в яких модулю API необхідне значення для кожного значення якогось іншого параметра. Наприклад, якби був модуль API для запитів фруктів, у нього був би параметр fruits для зазначення, запит на які саме фрукти надсилається і шаблонний параметр {fruit}-quantity для зазначення, скільки саме кожного різновиду фруктів потрібно. Клієнт API, якому потрібні 1 яблуко, 5 бананів і 20 полуниць, таким чином, міг би надіслати запит у формі fruits=apples|bananas|strawberries&apples-quantity=1&bananas-quantity=5&strawberries-quantity=20.
Головний модуль
- Джерело: MediaWiki
- Ліцензія: GPL-2.0-or-later
Specify the action to perform, the format of the response, and options that apply to all API modules.
- action
Яку дію виконати. Цей параметр слід надсилати як частину URL-адреси запиту (не в тілі POST) для зручності використання під час налагодження, аналітики та маршрутизації чи фільтрації запитів.
- acquiretempusername
- Отримує тимчасове імʼя користувача та зберігає його в поточній сесії, якщо увімкнено створення тимчасових облікових записів і поточний користувач вийшов із системи. Якщо імʼя вже збережено, повертає те саме ім'я.
- block
- Заблокувати користувача.
- changeauthenticationdata
- Зміна параметрів автентифікації для поточного користувача.
- changecontentmodel
- Змінити модель вмісту сторінки
- checktoken
- Перевірити коректність токена з action=query&meta=tokens.
- clearhasmsg
- Очищає прапорець
hasmsgдля поточного користувача. - clientlogin
- Увійдіть у вікі з допомогою інтерактивного потоку.
- compare
- Отримати порівняння двох сторінок.
- createaccount
- Створити новий обліковий запис користувача.
- delete
- Вилучити сторінку.
- edit
- Створювати і редагувати сторінки.
- emailuser
- Надіслати електронного листа користувачеві
- expandtemplates
- Розгортає усі шаблони в межах вікірозмітки.
- feedcontributions
- Повертає стрічку внеску користувача.
- feedrecentchanges
- Видає стрічку нових редагувань.
- feedwatchlist
- Видає стрічку списку спостереження.
- filerevert
- Повернути файл до старої версії.
- help
- Відображати довідку для зазначених модулів.
- imagerotate
- Поворот одного або декількох зображень.
- import
- Імпортувати сторінку з іншої вікі або з XML-файлу.
- languagesearch
- Пошук назв мов у будь-якому написанні.
- linkaccount
- Пов'язати обліковий запис третьої сторони з поточним користувачем.
- login
- Увійти в систему й отримати куки автентифікації.
- logout
- Вийти й очистити дані сесії.
- managetags
- Виконати керівні завдання щодо зміни теґів.
- mergehistory
- Об'єднання історій редагувань.
- move
- Перейменувати сторінку.
- opensearch
- Шукати у вікі з використанням протоколу OpenSearch.
- options
- Змінити налаштування поточного користувача.
- paraminfo
- Отримати інформацію про модулі API.
- parse
- Аналізує вміст і видає парсер виходу.
- patrol
- Відпатрулювати сторінку чи версію.
- protect
- Змінити рівень захисту сторінки.
- purge
- Очистити кеш для вказаних заголовків.
- query
- Вибірка даних з і про MediaWiki.
- removeauthenticationdata
- Вилучити параметри автентифікації для поточного користувача.
- resetpassword
- Відправити користувачу лист для відновлення пароля.
- revisiondelete
- Вилучити або відновити версії.
- rollback
- Скасувати останнє редагування цієї сторінки.
- rsd
- Експортувати як схему RSD (Really Simple Discovery).
- setnotificationtimestamp
- Оновити часову мітку сповіщень для сторінок, що спостерігаються.
- setpagelanguage
- Змінити мову сторінки.
- tag
- Додати або вилучити зміни міток з окремих версій або записів журналу.
- unblock
- Розблокувати користувача.
- undelete
- Відновити версії вилученої сторінки.
- unlinkaccount
- Вилучити пов'язаний обліковий запис третьої сторони з поточного користувача.
- upload
- Завантажити файл, або отримати статус завантажень у процесі.
- userrights
- Змінити членство користувача у групах.
- validatepassword
- Перевірити пароль на предмет відповідності політикам вікі щодо паролів.
- watch
- Додати або вилучити сторінки з списку спостереження поточного користувача.
- cspreport
- Внутрішній. Використовується браузерами для повідомлення порушень Правил безпеки контенту (Content Security Policy). Цей модуль не повинен використовуватися, окрім випадків автоматичного використання веб-браузером для CSP-скарги.
- stashedit
- Внутрішній. Підготувати редагування в загальний кеш.
- Одне з наступних значень: acquiretempusername, block, changeauthenticationdata, changecontentmodel, checktoken, clearhasmsg, clientlogin, compare, createaccount, delete, edit, emailuser, expandtemplates, feedcontributions, feedrecentchanges, feedwatchlist, filerevert, help, imagerotate, import, languagesearch, linkaccount, login, logout, managetags, mergehistory, move, opensearch, options, paraminfo, parse, patrol, protect, purge, query, removeauthenticationdata, resetpassword, revisiondelete, rollback, rsd, setnotificationtimestamp, setpagelanguage, tag, unblock, undelete, unlinkaccount, upload, userrights, validatepassword, watch, cspreport, stashedit
- Стандартно: help
- format
Формат виводу.
- json
- Вивести дані у форматі JSON.
- jsonfm
- Вивести дані у форматі JSON (вивід відформатованого коду за допомогою HTML).
- none
- Нічого не виводити.
- php
- Виводити дані у форматі серіалізованого PHP.
- phpfm
- Виводити дані у форматі серіалізованого PHP (вивід відформатованого коду за допомогою HTML).
- rawfm
- Виводити дані, включно з елементами налагодження, у форматі JSON (вивід відформатованого коду за допомогою HTML).
- xml
- Виводити дані у форматі XML.
- xmlfm
- Вивести дані у форматі XML (вивід відформатованого коду за допомогою HTML).
- Одне з наступних значень: json, jsonfm, none, php, phpfm, rawfm, xml, xmlfm
- Стандартно: jsonfm
- maxlag
Максимальна затримка може використовуватися, коли MediaWiki інстальовано на реплікований кластер бази даних. Щоб зберегти дії, які спричиняють більшу затримку реплікації, цей параметр може змусити клієнт почекати, поки затримка реплікації не буде меншою за вказане значення. У випадку непомірної затримки, видається код помилки maxlag з повідомленням на зразок Очікування на $host: $lag секунд(и) затримки.
Див. Manual: Maxlag parameter для детальнішої інформації.- Тип: ціле число
- smaxage
Встановити
s-maxageHTTP кеш-контроль заголовок на стільки секунд. Помилки ніколи не кешуються.- Тип: ціле число
- Значення має бути не меншим, ніж 0.
- Стандартно: 0
- maxage
Встановити
max-ageHTTP кеш-контроль заголовок на стільки секунд. Помилки ніколи не кешуються.- Тип: ціле число
- Значення має бути не меншим, ніж 0.
- Стандартно: 0
- assert
Перевірити, що користувач увійшов у систему (у тому числі, можливо, тимчасовий користувач), якщо задано user, не увійшов у систему, якщо задано anon, або має права бота, якщо задано bot.
- Одне з наступних значень: anon, bot, user
- assertuser
Перевірити, чи поточний користувач є найменованим користувачем.
- Тип: користувач, подано як ім'я користувача та Тимчасовий користувач
- requestid
Будь-яке значення, вказане тут, буде включене у відповідь. Може використовуватися, щоб відрізняти запити.
- servedby
Включити в результати ім'я хоста, який обробив запит.
- Тип: логічний (подробиці)
- curtimestamp
Включити в результат поточну мітку часу.
- Тип: логічний (подробиці)
- responselanginfo
Включати мови, які були використані для uselang і errorlang, у результат.
- Тип: логічний (подробиці)
- origin
При доступі до API з використанням крос-доменного AJAX-запиту (CORS), задайте параметру значення вихідного домена. Він має бути включений у будь-який попередній запит і таким чином мусить бути частиною запиту URL (не тіла POST).
Для автентифікованих запитів він повинен точно збігатися з одним із виходів у заголовку
Origin, тобто бути заданим чимось на зразок https://uk.wikipedia.org або https://meta.wikimedia.org. Якщо цей параметр не збігається із заголовкомOrigin, повернеться помилка 403. Якщо цей параметр збігається із заголовкомOriginі вихід знаходиться у дозволеному списку, буде встановлено заголовкиAccess-Control-Allow-OriginіAccess-Control-Allow-Credentials.Для неавтентифікованих запитів укажіть значення *. Це дасть встановлення заголовка
Access-Control-Allow-Origin, алеAccess-Control-Allow-Credentialsбудеfalseі всі дані про користувача будуть заборонені.- crossorigin
При доступі до API за допомогою міждоменного запиту AJAX (CORS) та використання провайдера сеансів, захищеного від атак міжсайтового підроблення запитів (CSRF) (наприклад, OAuth), використовуйте це замість
origin=*, щоб зробити запит автентифікованим (тобто не вийти з системи). Це повинно бути включено в будь-який попередній запит, а тому повинно бути частиною URL запиту (а не тіла POST).Зверніть увагу, що більшість постачальників сеансів, включаючи стандартні сеанси на основі файлів cookie, не підтримують автентифікований CORS і не можуть використовуватися з цим параметром.
- Тип: логічний (подробиці)
- uselang
Мова, що використовується для перекладу повідомлень. Список кодів видає action=query&meta=siteinfo&siprop=languages. Ви можете вказати user на використання поточного налаштування мови користувача, або вказати content на використання мови вмісту цієї вікі.
- Стандартно: user
- variant
Варіант мови. Працює лише, якщо базова мова підтримує конвертацію між варіантами.
- errorformat
Формат, що використовується для виведення тексту попередження та помилки
- plaintext
- Вікітекст із вилученими тегами HTML та заміною сутностей.
- wikitext
- Нерозбірний вікітекст.
- html
- HTML
- raw
- Ключ повідомлення та параметри.
- none
- Немає тексту, лише коди помилок.
- bc
- Формат, що використовувався до MediaWiki 1.29. errorlang і errorsuselocal ігноруються.
- Одне з наступних значень: bc, html, none, plaintext, raw, wikitext
- Стандартно: bc
- errorlang
Мова, яку використовувати для попереджень і помилок. action=query&meta=siteinfo&siprop=languages повертає список кодів мов. Вкажіть content, щоб використати мову вмісту поточної вікі, або uselang, щоб використовувати те ж значення, що й параметр uselang.
- Стандартно: uselang
- errorsuselocal
Якщо задано, тексти помилок використовуватимуть локальні повідомлення з простору назв MediaWiki.
- Тип: логічний (подробиці)
- Довідка для головного модуля.
- api.php?action=help [відкрити в пісочниці]
- Уся довідка на одній сторінці.
- api.php?action=help&recursivesubmodules=1&toc [відкрити в пісочниці]
Автор(и)
Розробники API:
- Roan Kattouw (головний розробник вер. 2007–2009)
- Victor Vasiliev
- Bryan Tong Minh
- Sam Reed
- Yuri Astrakhan (творець, головний розробник вер. 2006 – вер. 2007)
- Brad Jorsch (головний розробник 2013 – 2020)
Будь ласка, надсилайте свої коментарі, пропозиції та запитання на mediawiki-api@lists.wikimedia.org або подайте звіт про помилку за адресою https://phabricator.wikimedia.org/.