API:Tutorial/ru

Category:MediaWiki action API/ru

В этом учебном пособии вы узнаете о 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 или английской Википедии используйте соответствующую конечную точку. Например, английская Википедия это $2. Для тестирования новых учетных записей или тестирования редактирования страниц используйте конечную точку тестирования вики $3. To operate on the MediaWiki main site or English Wikipedia, use the related endpoint. For example, the English Wikipedia is at https://en.wikipedia.org/w/api.php. For testing new accounts or test edits to pages, use the test wiki endpoint https://test.wikipedia.org/w/api.php.

В строке запроса в URL, добавьте параметр action. Он сообщает API, какую операцию выполнять. Наиболее популярным действием является $2 (URL будет содержать $3, что позволяет получать данные из вики. После параметра $4, добавьте другой параметр, чтобы указать, какой из трех типов модулей запроса вы хотите выполнять: It tells the API which action to perform. The most popular action is query (the URL would contain action=query), which allows fetching data from a wiki. Following the action parameter, add another parameter to indicate which one of the three query module types you want to perform:

  • prop - получить свойства страниц  
  • list - получить список страниц , соответствующих определенному критерию
  • meta - получить мета-информацию о вики и пользователе

Наконец, включите параметр format , который сообщает API, в каком формате вернуть результаты. Рекомендуемый формат - JSON. API имеет поддерживаемые другие форматы вывода в прошлом, но они, как правило, не рекомендуются.

Request format
Request format

Простые запросы

Давайте возьмем пример простых запросов, чтобы понять, как выглядит типичный запрос и ответ 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. Некоторые параметры модуля, поддерживаемые в одной версии, могут быть отменены или удалены в других. Вы можете узнать об этом в документации каждого модуля через [$2 API модуль помощи]. They might all be running a different version of MediaWiki and in turn the API. Some module parameters supported in one version might be deprecated or removed in others. You could learn about that in each module's documentation via API help module.
  • Если вы хотите сделать много звонков в API, и, возможно, запустить очень затратных и активных ботов, поговорите с администраторами вики заранее, чтобы они не блокировали вас. См. список $1 Администраторы проектов Wikimedia. Читайте больше об этой теме на $2. See list of Administrators of Wikimedia projects. Read more about this topic on API:Этикет.
  • Все данные, изменяющие действия, такие как запись, редактирование или перемещение страницы, и наблюдение или патрулирование изменений, требуют токенов. Вам нужно будет получить токены через API:Токены для дальнейшего использования.

Ресурсы

Category:MediaWiki technical documentation/ru Category:Tutorials/ru Category:MediaWiki API/ru Category:New contributors/ru
Category:MediaWiki API/ru Category:MediaWiki action API/ru Category:MediaWiki technical documentation/ru Category:New contributors/ru Category:Tutorials/ru