API:Data formats/uk
From MediaWiki.org
| Ця сторінка є частиною документації по MediaWiki API. |
Contents |
[edit] Вхідні дані
Найпростіший спосіб передавання даних для API — через параметри рядка запиту. Кожен модуль (і кожен підмодуль action=query) має власний набір параметрів. Про них можн дізнатися, якщо звернутися до API з параметром action=help, чи просто без параметрів (наприклад, http://www.mediawiki.org/w/api.php?action=help), або через action=paraminfo.
[edit] Багатозначні параметри
Деякі параметри можуть передавати багато значень. Ці значення слід відділяти між собою вертикальною рискою (|). Якщо параметр може приймати багато значень, про це явно вказується у action=paraminfo та action=help. Натомість у документації багатозначні параметри описуються, як правило, словами "Перелік того-то…".
[edit] Часові мітки
Параметрами приймаються часові мітки у декількох форматах:
- uk:ISO 8601:
2008-08-23T18:05:46Z - власний формат MediaWiki:
20080823180546 - формат MySQL:
2008-08-23 18:05:46 - формат UNIX (число секунд від 1 січня, 1970)
Вивідні часові мітки є у форматі ISO 8601.
[edit] Дані на виході
MediaWiki API підтримує декілька стандартних форматів даних на виході (XML,JSON,YAML,...), а також кілька спеціальних (RSS, ...) для спеціальних модулів.
Крім спеціалізованих, усі модулі підтримують дані на виході у будь-якому стандартному форматі. Щоб спростити зневадження, всі стандартні формати мають свої варіанти у "красивому HTML", з наростком "fm". Звичаєво використовується формат "xmlfm".
| Code | Description | Parameters |
|---|---|---|
| json | JSON | callback (необов'язково): обгортає вивід у виклик потрібної функції |
| php | serialized PHP | |
| wddx | WDDX | |
| xml | XML | |
| yaml | YAML | |
| rawfm | JSON зі зневаджувальними елементами (HTML) | callback (необов'язково): обгортає вивід у виклик потрібної функції |
| txt | PHP print_r() | |
| dbg | PHP var_export() |
[edit] Приклади
XML
<?xml version="1.0" encoding="utf-8"?> <api> <query> <pages> <page pageid="736" ns="0" title="Albert Einstein" touched="2007-07-06T04:37:30Z" lastrevid="142335140" counter="4698" length="86906" /> </pages> </query> </api>
JSON
{ "query": { "pages": { "736": { "pageid": 736, "ns": 0, "title": "Albert Einstein", "touched": "2007-07-06T04:37:30Z", "lastrevid": 142335140, "counter": 4698, "length": 86906 } } } }
YAML
---
query:
pages:
-
pageid: 736
ns: 0
title: Albert Einstein
touched: |
2008-03-16T04:59:39Z
lastrevid: 198568286
counter: 4698
length: 81076
WDDX
<?xml version="1.0" encoding="utf-8"?> <wddxPacket version="1.0"> <header/> <data> <struct> <var name="query"> <struct> <var name="pages"> <struct> <var name="736"> <struct> <var name="pageid"> <number>736</number> </var> <var name="ns"> <number>0</number> </var> <var name="title"> <string>Albert Einstein</string> </var> <var name="touched"> <string>2007-07-06T04:37:30Z</string> </var> <var name="lastrevid"> <number>142335140</number> </var> <var name="counter"> <number>4698</number> </var> <var name="length"> <number>86906</number> </var> </struct> </var> </struct> </var> </struct> </var> </struct> </data> </wddxPacket>
PHP (додані переноси рядків для зручності. Використовуйте PHP-функцію unserialize(), щоб відновити дані.)
a:1:{s:5:"query";a:1:{s:5:"pages";a:1:{i:736;a:7:{s:6:"pageid";i:736;s:2:"ns";i:0;s:5:"title";s:15:"Albert Einstein";
s:7:"touched";s:20:"2007-07-06T04:37:30Z";s:9:"lastrevid";i:142335140;s:7:"counter";i:4698;s:6:"length";i:86906;}}}}
PHP (формат var_export. Використовуйте PHP-функцію eval(), щоб відновити дані.)
array (
'query' =>
array (
'pages' =>
array (
736 =>
array (
'pageid' => 736,
'ns' => 0,
'title' => 'Albert Einstein',
'touched' => '2008-10-11T20:27:04Z',
'lastrevid' => 244636163,
'counter' => 4698,
'length' => 89641,
),
),
),
)