API:FAQ/ru

Обзор
Эта страница предоставляет ответы на некоторые часто задаваемые вопросы о MediaWiki Action API. This page is intended for technical contributors and software developers who wish to understand and use the MediaWiki Action API.

Также прочтите. На ней есть ответы на некоторые вопросы, на которые здесь ответа нет, а также ссылки на другие полезные страницы.



Об API


Что такое API
API — эта аббревиатура расшифровывается как программный интерфейс приложения. Он позволяет различным приложениям взаимодействовать друг с другом. Sometimes an API allows an application to request an action to be done by the application which implements the API. В общих чертах медиавики относится к API на основе веб-интерфейса, которые используют механизм HTTP-запросов-ответов и выдают структурированные данные в формате JSON/XML.



Что такое REST API?
REST - это аббревиатура от Передача состояния представления. Набор руководящих принципов или ограничений определяет RESTful систему. RESTful API &mdash; или просто REST API &mdash; придерживается этих принципов и, следовательно, является более быстрым, надежным и масштабируемым сервисом.



Что может делать API?
Посмотрите на некоторые примеры использования API.



Где я могу познакомиться с дополнительной информацией о API?
Вот несколько ресурсов:


 * Понимание API
 * Введение в API
 * Что такое REST - простое объяснение для новичков, часть 1: Введение

Основное


Что такое MediaWiki Action API?
MediaWiki Action API это веб сервис REST, который позволяет выполнять такие действия вики как создание страниц, авторизацию, разбор, поиск и т.д.



Для чего можно использовать MediaWiki Action API?
MediaWiki Action API может быть использован для:


 * Доступа к функциональности вики
 * Взаимодействия с вики
 * Получения метаданных о вики и публичных пользователях

Правая боковая панель указывает на многие функции, поддерживаемые API. Также см. проекты Викимедиа, использующие MediaWiki Action API.



Как я могу взаимодействовать с MediaWiki Action API?
HTTP requests обычно используются для обращения к Action API. Для получения дополнительной информации прочтите эту статью.

Чтобы поэкспериментировать с API


 * используйте Special:ApiSandbox
 * Включите консоль разработчика в вашем браузере и просматривайте сетевые запросы к, в то время как вы взаимодействуете с вики



Что такое модуль, подмодуль и параметр?
В MediaWiki Action API есть множество модулей, которые мы используем для выполнения различных задач. С технической точки зрения модуль является подклассом ApiBase. Модулю требуются параметры. Эти параметры могут быть (а могут и не быть) подмодулями.

Рассмотрим следующий запрос:

Здесь:


 * — параметр главного модуля.
 * это другой модуль. Он называется модулем запроса.
 * это параметр модуля запроса.
 * также является модулем. Его можно назвать подмодулем
 * это параметр модуля search module. В нем располагается строка поиска 'abc'.
 * - это параметр главного модуля.
 * - это формат вывода

Также посмотрите Введение и рекомендации. Оно описывает подмодули модуля



Как мне узнать, какой модуль и подмодуль вызывать?
Запрос к API MediaWiki достаточно большой, а расширения увеличивают его ещё сильнее. Вот несколько способов поработать с вашим запросом API:


 * На боковой панели найдите функцию, которую хотите реализовать, и перейдите по ссылке, чтобы узнать, какие модули вызывать.
 * самодокументирующиеся страницы API содержат список всех модулей и подмодулей с краткими описаниями. Вы можете начать с главного модуля и перейти по ссылкам к различным подмодулям. (Добавьте, чтобы просмотреть расширенную версию)



Где я могу найти примеры кодов для использования модулей API?
На страницах API-документации есть раздел «Примеры», демонстрирующий, как можно использовать различные модули и подмодули. В автоматически сгенерированных документах также есть примеры, завершающие описания модулей.

См. Mediawiki-API-demos для фрагментов кода на Python и JavaScript.



Как можно контролировать формат вывода?
Формат вывода по умолчанию - JSON. Другие форматы вывода объявлены устаревшими или удалены в последней стабильной версии MediaWiki, и их использование не рекомендуется.

В более старых версиях для управления форматом вывода вы можете передать  в строке запроса.

Для дополнительной информации смотрите API:Форматы данных.



Нужен ли мне токен доступа?
Вам потребуется токен доступа для выполнения действий по изменению данных, таких как вход в систему, редактирование, перемещение страниц и т.д.

Чтобы узнать больше, обратитесь к API: токены или к  категории боковой панели 'Аутентификация'.



Как я могу делать межсайтовые запросы с помощью API?
Вы должны использовать JSONP или CORS для выполнения межсайтовых запросов в MediaWiki.

Подробнее см. API: межсайтовые запросы.



Есть ли ограничение на результаты запроса?
Да, это зависит от параметра запроса. Например, результаты запросов на  и  2 не могут превышать 500 для обычных пользователей. На страницах API информация об этих ограничениях содержится в разделе 'Дополнительные примечания' или 'Ограничения'. Обратите внимание, что некоторые модули налагают более строгие ограничения при определенных условиях. На страницах API информация об этих ограничениях содержится в разделе "Дополнительные примечания" или в разделе "Ограничения". Обратите внимание, что некоторые модули при определенных условиях устанавливают более жесткие ограничения.

Если вы не уверены, каков доступный вам предел, и хотите получить максимальное количество результатов за запрос, установите параметр предела как равный.



Есть ли ограничение на вызовы API?
Нет конкретного предела. Тем не менее, мы рекомендуем совершать разумное количество звонков, чтобы вас не заблокировали. Если вы хотите сделать много запросов, заранее свяжитесь с администраторами.

Также см. API: этикет.

<span id="Where_can_I_get_updates_about_the_MediaWiki_Action_API?">

Как я могу обновлять MediaWiki Action API?
Вы можете подписаться на список рассылки MediaWiki-API-Announce для получения объявлений и обновлений.

<span id="What_are_wiki_dumps_and_how_can_I_work_with_them?">

Что такое вики-дампы и как с ними работать?
Дампы данных Викимедиа представляют собой дампы коллекций вики, контента, метаданных, поисковых индексов и т.д. Для работы с дампами см. использование дампов и [публичных дампов https://dumps.wikimedia.org/].

<span id="Where_can_I_get_more_help?">

Где я могу получить дополнительную помощь?
Если вы не можете найти ответы на страницах Документация MediaWiki API или автоматически сгенерированной документации, не стесняйтесь обращаться к нам следующими способами.


 * Создайте учётную запись Викимедиа (если у вас её ещё нет) и добавьте новую тему на страницу обсуждения API.
 * Задайте свой вопрос:
 * IRC в канале.
 * Список рассылки MediaWiki-API.

<span id="Extension_developers_and_wiki_owners">

Разработчики расширений и владельцы вики
<span id="How_can_I_create_an_API_module_in_an_extension?">

Как я могу создать модуль API в расширении?
API: Расширения проведет вас через полный процесс создания модуля API в расширении.

<span id="What_is_the_internal_structure_of_the_API?">

Какова внутренняя структура API?
API: стратегия реализации объясняет реализацию механизма API в MediaWiki Core.

<span id="How_can_I_restrict_the_API_usage?">

Как я могу ограничить использование API?
Чтобы ограничить использование API, вы можете либо ограничить использование API записи, либо отключить отдельные модули.

Инструкции и примеры см. в API: Ограничение использования API.

<span id="Errors_and_troubleshooting">

Ошибки и устранение неполадок
<span id="How_do_I_detect_an_error?">

Как определить ошибку?
Если вы столкнетесь с ошибкой, ответ об ошибке от API установит HTTP-заголовок  и вернет структуру ошибки.

<span id="What_does_this_error_mean?">

Что означает эта ошибка?
Найдите свою ошибку в списке стандартных сообщений об ошибках, чтобы понять, что означает данная ошибка.

<span id="How_do_I_file_a_bug/feature_requests?">

Как мне отправить запрос об ошибке / функции?
Вы можете сообщать об ошибках с помощью инструмента отслеживания задач Викимедиа - в Phabricator.

Примечание:


 * Add the MediaWiki-API project tag to your task.
 * If your report/request is offered by an extension, add that extension's project. (e.g. MediaWiki-extensions-AbuseFilter,  MediaWiki-extensions-FlaggedRevs, etc.)
 * Verify for duplicates before creating a new task.
 * Understand the task creation terms on Phabricator before proceeding.

See How to report a bug for more details.

<span id="Am_I_facing_errors_due_to_my_API_version?">

Сталкиваюсь ли я с ошибками из-за версии API?
If a website runs a different version of MediaWiki, it would also run a different version of the API. Some module parameters supported in one version might be deprecated (or removed) in others. Such parameters will throw an exception if used. The API pages document any such deprecations.

See the release notes for information regarding different API versions.