API:Query/uk

Модуль  дозволяє отримувати інформацію про вікі та дані, що зберігаються в ній, наприклад, вікітекст певної сторінки, посилання та категорії набору сторінок або маркер, необхідний для.



Документація API


Модулі запитів
Модуль запиту (query module) має три типи підмодулів (їх також називають модулями запитів):


 * про вікі та зареєстрованого користувача.
 * сторінок, включаючи версії та вміст сторінок.
 * сторінок, які відповідають певним критеріям.

Приклади


Приклад 1: Вказання ​​сторінок
На відміну від модулів запитів метаінформації та списку, усі модулі запитів властивостей працюють на наборі сторінок, які можна вказати одним із таких способів:


 * За назвою, використовуючи параметр, наприклад.
 * За ідентифікатором сторінки з використанням параметра, напр..
 * За ідентифікатором версії за допомогою параметра, напр.  . Більшість модулів запитів перетворюють ідентифікатор версії у відповідний ідентифікатор сторінки. Тільки  насправді використовує сам ідентифікатор версії.
 * Використовуючи генератор.



Відповідь


Приклад 2: Нормалізація назви
Нормалізація перетворює назви сторінок у їхню канонічну форму.

Це означає використання великих літер першим символом, заміну підкреслень пробілами та зміну простору назв на локалізовану форму, визначену для цієї вікі.



Відповідь


Приклад 3: Відсутні та недопустимі назви
Назви, які не існують або є недійсними, матимуть у відповіді атрибут  або.

У вихідних форматах, які підтримують числові ключі масивів, відсутні та недійсні заголовки матимуть від’ємні ідентифікатори сторінок.

In some cases, a title can be viewed by a user but cannot be accessed by the API, such as pages that mirror content from another wiki. These titles will have a  attribute set in the response.



Відповідь


Приклад 4: Запити з продовженням
Коли не всі дані повертаються у відповідь на запит, з'явиться атрибут, який вказує на те, що даних є більше.



Відповідь
Щоб отримати додаткові дані, додайте його значення до початкового запиту.

Response


Приклад 5: Завершення пакету
API повертає елемент, щоб вказати, що повернуто всі дані для поточної порції елементів.

У відповідь на приклад запиту нижче було включено, щоб вказати, що всі дані для кожного з трьох зображень були повернуті.

Наступне продовження почне повертати дані для наступного набору з трьох зображень.



Відповідь


Приклад 6: Генератори
Використовуйте генератори, якщо хочете отримати дані про набір сторінок.

Наприклад, щоб отримати дані про сторінки в певній категорії, замість того, щоб запитувати, а потім знову робити запит із  , встановленим для всіх повернених сторінок, об'єднайте два виклики API в один, використовуючи.

Використовуючи модуль списку як генератор, вам не треба вказувати сторінки.

Однак для модуля властивостей вам треба вказати сторінки, над якими буде працювати генератор.

Наприклад, щоб завантажити всі сторінки, на які є посилання з головної сторінки, використовуйте.

Параметри, передані генератору, повинні мати префікс. Наприклад, при використанні, використовуйте  замість.

Приклад запиту нижче отримує посилання та категорії для перших трьох сторінок у головному просторі назв, починаючи з «Ba».



Continuing queries
Very often you will not get all the data you want in one API query. When that happens the API result indicates there is more data.

Because there are more data matching the query, the API result includes a  element. If you want further data, you would add its values (in the example,  and  ) to the original request to get the next set of results. You continue to do this until an API result does not have a  element, indicating there are no more data matching the query.

Here is Python code showing how to iterate over query results (using the python requests lib). Note you should not manipulate or depend on any specifics of the values returned inside the  element, as they may change.

batchcomplete
When you make an API request using a generator together with properties, the API result may signal to continue because there are more properties to retrieve for the pages so far, or because there are more pages from the generator, or both. From version 1.25 onwards, the API returns a  element to indicate that all data for the current "batch" of pages has been returned. This can be useful to avoid building a combined result set for thousands of pages when using a generator together with prop modules that may themselves need continuation.

Backwards compatibility of continue
From MediaWiki 1.21 to 1.25, it was required to specify  (i.e. with an empty string as the value) in the initial request to get continuation data in the format described above. Without doing that, API results would indicate there is additional data by returning a  element, explained in Raw query continue. Prior to 1.21, that raw continuation was the only option.

If your application needs to use the raw continuation in MediaWiki 1.26 or later, you must specify  to request it.



Можливі попередження


Історія параметра

 * v1.21: Уведено
 * v1.24: Уведено  (зауважте, що необроблене продовження було поведінкою за замовчуванням до v1.26)

<span id="Additional_notes">

Додаткові примітки

 * Вказання ​​назв з допомогою  або   обмежено 50 назвами на запит, або 500 для тих, хто має право на.
 * Використовуйте кілька модулів запитів разом, щоб отримати те, що вам потрібно в одному запиті, наприклад.
 * Generators always pass page titles to the query module. Unlike lists (which may include additional data by default), generators should not output any information themselves, unless when explicitly requested via the generator module's query parameters.

<span id="Resolving_redirects">

Вирішення перенаправлень
Перенаправлення можна вирішити автоматично, так, що ціль перенаправлення повертається замість заданої назви. Якщо перенаправлення є, вони завжди будуть містити атрибути  і   і можуть містити атрибут   для тих перенаправлень, які вказують на конкретні розділи.

Може мати місце як нормалізація, так і перенаправлення. У разі кількох перенаправлень всі перенаправлення будуть вирішені, а у випадку кругового перенаправлення в розділі 'pages' (сторінки) може не бути сторінки (див. також нижче). Дозвіл перенаправлення не можна використовувати в поєднанні з параметром  або з генератором, що генерує ідентифікатори версій (revids); виконавши це, ви отримаєте попередження і не вирішите перенаправлення для зазначених revids.

У наведених нижче прикладах показано, як працює параметр.

<span id="See_also">

Див. також

 * - Короткий посібник для початку.
 * - Містить інформацію про те, як використовувати параметр.