API:Учебное пособие
Эта страница является частью документации по API действий MediaWiki. |
В этом учебном пособии вы узнаете о MediaWiki Action API, как его использовать, формате запроса, простом запросе и примерах проектов с использованием Action API.
Обзор API MediaWiki Action
MediaWiki Action API — это веб-сервис с архитектурным стилем RESTful, который позволяет пользователям выполнять определенные вики-действия, такие как создание страниц, аутентификация, анализ, поиск и т. д. API:Главная страница - хорошее начало для понимания API.
Ваша программа отправляет запросы в API для доступа к функциям вики. Например, войти в вики, создать и редактировать страницу, искать по заголовку, искать по тексту контента или проанализировать контент. API Action доступен для разработчиков третьих сторон, разработчикам расширений Wikimedia и администраторов сайтов wiki.
В правой боковой панели этой страницы есть много функций, которые поддерживаются API, сгруппированных по категориям. Перед отправкой запросов на сервер вики, сначала прочитайте страницы обзора, такие как data formats, errors and warnings, и Action API FAQ.
Как использовать API MediaWiki Action
Вы можете запросить данные с клиентской стороны на сервер через HTTP и получить ответ в стандартном формате (обычно JSON). Запрос состоит из конечной точки и набора параметров. Существует два типа запросов, которые могут быть выполнены: GET и POST. Для запроса GET параметр будет содержать строку запроса в URL. Для запроса POST форматируйте параметры в JSON формате.
Формат запроса
Все Wikimedia Wikis имеют конечные точки в этом формате http://example.org/w/api.php
. Для работы на главном сайте MediaWiki или английской Википедии используйте соответствующую конечную точку. Например, английская Википедия это https://en.wikipedia.org/w/api.php
. Для тестирования новых учетных записей или тестирования редактирования страниц используйте конечную точку тестирования вики https://test.wikipedia.org/w/api.php
.
В строке запроса в URL, добавьте параметр action
. Он сообщает API, какую операцию выполнять. Наиболее популярным действием является query
(URL будет содержать action=query
), что позволяет получать данные из вики. После параметра action
, добавьте другой параметр, чтобы указать, какой из трех типов модулей запроса вы хотите выполнять:
prop
- получить свойства страницlist
- получить список страниц , соответствующих определенному критериюmeta
- получить мета-информацию о вики и пользователе
Наконец, включите параметр format
, который сообщает API, в каком формате вернуть результаты. Рекомендуемый формат - JSON. API имеет поддерживаемые другие форматы вывода в прошлом, но они, как правило, не рекомендуются.
Простые запросы
Давайте возьмем пример простых запросов, чтобы понять, как выглядит типичный запрос и ответ GET в контексте Action API.
Давайте выполним поиск заголовка в вики. Мы будем использовать search
модуль задокументированный на API:Search .
GET-запрос
Чтобы искать заголовки страниц или содержимое, соответствующее Craig Noone
, URL для запроса HTTP GET будет:
Объяснение каждой части URL:
http://en.wikipedia.org/w/api.php
- главная конечная точка. В этом случае это английская Википедия.action=query
означает получение данных из вики.list=search
означает получить список страниц, соответствующих критериям.srsearch=Craig%20Noone
указывает на заголовок страницы или содержимое, которое нужно искать.%20
указывает на пространственный знак в URL-адресе.format=json
указывает на JSON результат, который является рекомендуемым форматом выходного результата.
Ответ
Ответ - это документ в формате JSON с списком названий страниц, которые соответствуют "Крейгу Ноуну":
{
"batchcomplete": "",
"continue": {
"sroffset": 10,
"continue": "-||"
},
"query": {
"searchinfo": {
"totalhits": 210
},
"search": [
{
"ns": 0,
"title": "Craig Noone",
"pageid": 18846922,
"size": 22548,
"wordcount": 1771,
"snippet": "<span class=\"searchmatch\">Craig</span> Stephen <span class=\"searchmatch\">Noone</span> (born 17 November 1987) is an English professional footballer who plays as a winger for Bolton Wanderers. Born in Kirkby, he has also",
"timestamp": "2018-11-02T22:25:45Z"
},
{
"ns": 0,
"title": "Noone",
"pageid": 32906333,
"size": 553,
"wordcount": 64,
"snippet": "<span class=\"searchmatch\">Noone</span> is a surname that may refer to: <span class=\"searchmatch\">Craig</span> <span class=\"searchmatch\">Noone</span> (born 1987), English football midfielder Jimmie <span class=\"searchmatch\">Noone</span> (1895–1944), American jazz clarinetist Kathleen",
"timestamp": "2015-08-16T05:16:17Z"
}
...
]
}
}
Примеры проектов с использованием Action API
Некоторые примеры проектов в Викимедиа, которые используют Action API:
- Wikipedia iOS App, в которой одна из функций - поиск страниц вики рядом с вашим местоположением.
- Боты, которые работают на вики. Pywikibot - это бот-фреймворк, написанный на языке Python, который взаимодействует с API MediaWiki, используемым многими разработчиками ботов.
- Использование API при визуализации данных, полученных из вики. Например, это neat visualization показывает редактирование в режиме реального времени, сделанное на Википедии.
Дополнительные примечания
- Несколько Special:MyLanguage/Sites using MediaWiki сайтов используют MediaWiki. Они могут работать с другой версией MediaWiki и, в свою очередь, API. Некоторые параметры модуля, поддерживаемые в одной версии, могут быть отменены или удалены в других. Вы можете узнать об этом в документации каждого модуля через API модуль помощи.
- Если вы хотите сделать много звонков в API, и, возможно, запустить очень затратных и активных ботов, поговорите с администраторами вики заранее, чтобы они не блокировали вас. См. список metawiki:Administrators_of_Wikimedia_projects Администраторы проектов Wikimedia. Читайте больше об этой теме на API:Этикет .
- Все данные, изменяющие действия, такие как запись, редактирование или перемещение страницы, и наблюдение или патрулирование изменений, требуют токенов. Вам нужно будет получить токены через API:Токены для дальнейшего использования.
Ресурсы
- Используйте Special:APISandbox для экспериментов с API Action. Вы можете играть с поддерживаемыми действиями, указать значение для параметров и отправить запросы в API, чтобы увидеть результаты на одной странице.
- Wikimedia dumps чтобы вы могли работать с ними локально.
- Прочитайте учебники: Введение в API и Что такое REST - простое объяснение для начинающих.
- MediaWiki API помощь обеспечивает автоматически генерируемую документацию API всех поддерживаемых модулей.
- API:Главная страница предоставляет обзор API Action.
- Введение в API MediaWiki от User:Roan_Kattouw_(WMF) на хакатоне в Сан-Франциско, 2012 год. Это учебное руководство сопровождается видео.
- GitHub: Демо API MediaWiki