API:Revisions/ja
![]() | このページは MediaWiki 操作 API の説明文書の一部です。 |
MediaWiki バージョン: | ≧ 1.8 |
ページ (群) の版の情報を取得する GET リクエストです。
APIの説明文書
![]() | 以下の説明文書は、このサイト (MediaWiki.org) で稼働しているリリース前のバージョンのMediaWikiによって自動的に生成された、Special: |
prop=revisions (rv)
- This module requires read rights.
- This module can be used as a generator.
- Source: MediaWiki
- License: GPL-2.0-or-later
Get revision information.
May be used in several ways:
- Get data about a set of pages (last revision), by setting titles or pageids.
- Get revisions for one given page, by using titles or pageids with start, end, or limit.
- Get data about a set of revisions by setting their IDs with revids.
- rvprop
Which properties to get for each revision:
- ids
- The ID of the revision.
- flags
- Revision flags (minor).
- timestamp
- The timestamp of the revision.
- user
- User that made the revision. If the user has been revision deleted, a userhidden property will be returned.
- userid
- User ID of the revision creator. If the user has been revision deleted, a userhidden property will be returned.
- size
- Length (bytes) of the revision.
- slotsize
- Length (bytes) of each revision slot.
- sha1
- SHA-1 (base 16) of the revision. If the content has been revision deleted, a sha1hidden property will be returned.
- slotsha1
- SHA-1 (base 16) of each revision slot. If the content has been revision deleted, a sha1hidden property will be returned.
- contentmodel
- Content model ID of each revision slot.
- comment
- Comment by the user for the revision. If the comment has been revision deleted, a commenthidden property will be returned.
- parsedcomment
- Parsed comment by the user for the revision. If the comment has been revision deleted, a commenthidden property will be returned.
- content
- Content of each revision slot. If the content has been revision deleted, a texthidden property will be returned. For performance reasons, if this option is used, rvlimit is enforced to 50.
- tags
- Tags for the revision.
- roles
- List content slot roles that exist in the revision.
- parsetree
- Deprecated. Use action=expandtemplates or action=parse instead. The XML parse tree of revision content (requires content model
wikitext
). For performance reasons, if this option is used, rvlimit is enforced to 50.
- Values (separate with | or alternative): comment, content, contentmodel, flags, ids, parsedcomment, roles, sha1, size, slotsha1, slotsize, tags, timestamp, user, userid, parsetree
- Default: ids|timestamp|flags|comment|user
- rvslots
Which revision slots to return data for, when slot-related properties are included in rvprops. If omitted, data from the main slot will be returned in a backwards-compatible format.
- Values (separate with | or alternative): main
- To specify all values, use *.
- rvcontentformat-{slot}
Content serialization format used for output of content.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of rvslots.
- One of the following values: application/json, application/octet-stream, application/unknown, application/vue+xml, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
- rvlimit
Limit how many revisions will be returned. If rvprop=content, rvprop=parsetree, rvdiffto or rvdifftotext is used, the limit is 50. If rvparse is used, the limit is 1.
- May only be used with a single page (mode #2).
- Type: integer or max
- The value must be between 1 and 500.
- rvexpandtemplates
- Deprecated.
Use action=expandtemplates instead. Expand templates in revision content (requires rvprop=content).
- Type: boolean (details)
- rvgeneratexml
- Deprecated.
Use action=expandtemplates or action=parse instead. Generate XML parse tree for revision content (requires rvprop=content).
- Type: boolean (details)
- rvparse
- Deprecated.
Use action=parse instead. Parse revision content (requires rvprop=content). For performance reasons, if this option is used, rvlimit is enforced to 1.
- Type: boolean (details)
- rvsection
Only retrieve the content of the section with this identifier.
- rvdiffto
- Deprecated.
Use action=compare instead. Revision ID to diff each revision to. Use prev, next and cur for the previous, next and current revision respectively. For performance reasons, if this option is used, rvlimit is enforced to 50.
- rvdifftotext
- Deprecated.
Use action=compare instead. Text to diff each revision to. Only diffs a limited number of revisions. Overrides rvdiffto. If rvsection is set, only that section will be diffed against this text. For performance reasons, if this option is used, rvlimit is enforced to 50.
- rvdifftotextpst
- Deprecated.
Use action=compare instead. Perform a pre-save transform on the text before diffing it. Only valid when used with rvdifftotext.
- Type: boolean (details)
- rvcontentformat
- Deprecated.
Serialization format used for rvdifftotext and expected for output of content.
- One of the following values: application/json, application/octet-stream, application/unknown, application/vue+xml, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
- rvstartid
Start enumeration from the timestamp of the revision with this ID. The revision must exist, but need not belong to this page.
- May only be used with a single page (mode #2).
- Type: integer
- rvendid
Stop enumeration at the timestamp of the revision with this ID. The revision must exist, but need not belong to this page.
- May only be used with a single page (mode #2).
- Type: integer
- rvstart
From which revision timestamp to start enumeration.
- May only be used with a single page (mode #2).
- Type: timestamp (allowed formats)
- rvend
Enumerate up to this timestamp.
- May only be used with a single page (mode #2).
- Type: timestamp (allowed formats)
- rvdir
In which direction to enumerate:
- newer
- List oldest first. Note: rvstart has to be before rvend.
- older
- List newest first (default). Note: rvstart has to be later than rvend.
- May only be used with a single page (mode #2).
- One of the following values: newer, older
- Default: older
- rvuser
Only include revisions made by user.
- May only be used with a single page (mode #2).
- Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
- rvexcludeuser
Exclude revisions made by user.
- May only be used with a single page (mode #2).
- Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
- rvtag
Only list revisions tagged with this tag.
- rvcontinue
When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.
- Get data with content for the last revision of titles API and MediaWiki.
- api.php?action=query&prop=revisions&titles=API|MediaWiki&rvslots=*&rvprop=timestamp|user|comment|content [open in sandbox]
- Get last 5 revisions of the MediaWiki.
- api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment [open in sandbox]
- Get first 5 revisions of the MediaWiki.
- api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvdir=newer [open in sandbox]
- Get first 5 revisions of the MediaWiki made after 2006-05-01.
- api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvdir=newer&rvstart=2006-05-01T00:00:00Z [open in sandbox]
- Get first 5 revisions of the MediaWiki that were not made by anonymous user 127.0.0.1.
- api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvexcludeuser=127.0.0.1 [open in sandbox]
- Get first 5 revisions of the MediaWiki that were made by the user MediaWiki default.
- api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvuser=MediaWiki%20default [open in sandbox]
例 1: 複数ページから更新履歴データを取得
GET リクエスト
上記のリクエストでは、題名が API と メインページ のページから更新情報を抽出することが目的です。
レスポンス
レスポンス |
---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 1423,
"ns": 0,
"title": "Main Page",
"revisions": [
{
"user": "Bdk",
"timestamp": "2005-09-16T01:14:43Z",
"comment": "Reverted edit of 82.36.210.14, changed back to last version by Brion VIBBER"
}
]
},
{
"pageid": 55332,
"ns": 0,
"title": "API",
"revisions": [
{
"user": "Mainframe98",
"timestamp": "2017-08-19T18:23:42Z",
"comment": "Reverted edits by [[Special:Contributions/Sankaran kumar|Sankaran kumar]] ([[User talk:Sankaran kumar|talk]]) to last revision by [[User:Shirayuki|Shirayuki]]"
}
]
}
]
}
}
|
サンプル コード
Python
#!/usr/bin/python3
"""
get_pages_revisions.py
MediaWiki API Demos
Demo of `Revisions` module: Get revision data with content for pages
with titles [[API]] and [[Main Page]]
MIT License
"""
import requests
S = requests.Session()
URL = "https://www.mediawiki.org/w/api.php"
PARAMS = {
"action": "query",
"prop": "revisions",
"titles": "API|Main Page",
"rvprop": "timestamp|user|comment|content",
"rvslots": "main",
"formatversion": "2",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
data = R.json()
pages = data["query"]["pages"]
for page in pages:
print(page["revisions"])
PHP
<?php
/*
get_pages_revisions.php
MediaWiki API Demos
Demo of `Revisions` module: Get revision data with content for pages with titles [[API]] and [[Main Page]]
MIT License
*/
$endPoint = "https://www.mediawiki.org/w/api.php";
$params = [
"action" => "query",
"prop" => "revisions",
"titles" => "API|Main Page",
"rvprop" => "timestamp|user|comment|content",
"rvslots" => "main",
"formatversion" => "2",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
foreach( $result["query"]["pages"] as $k => $v ) {
var_dump( $v["revisions"] );
}
JavaScript
/*
get_pages_revisions.js
MediaWiki API Demos
Demo of `Revisions` module: Get revision data with content for pages with titles [[API]] and [[Main Page]]
MIT License
*/
var url = "https://www.mediawiki.org/w/api.php";
var params = {
action: "query",
prop: "revisions",
titles: "API|Main Page",
rvprop: "timestamp|user|comment|content",
rvslots: "main",
formatversion: "2",
format: "json"
};
url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});
fetch(url)
.then(function(response){return response.json();})
.then(function(response) {
var pages = response.query.pages;
for (var p in pages) {
console.log(pages[p].revisions);
}
})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
get_pages_revisions.js
MediaWiki API Demos
Demo of `Revisions` module: Get revision data with content for pages with
titles [[API]] and [[Main Page]]
MIT License
*/
var params = {
action: 'query',
prop: 'revisions',
titles: 'API|Main Page',
rvprop: 'timestamp|user|comment|content',
rvslots: 'main',
formatversion: '2',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var pages = data.query.pages,
p;
for ( p in pages ) {
console.log( pages[ p ].revisions );
}
} );
例 2: 個別のページについて日付・利用者で絞り込んだ直近5件の更新履歴を取得
GET リクエスト
上記のリクエストでは、目的は特定のページ API:Geosearch について、2018年7月1日つまり 2018-07-01以降の直近の更新5版についてデータの抽出です。ただし利用者 SSethi (WMF) による更新を除外しています。
レスポンス
レスポンス |
---|
{
"batchcomplete": "",
"query": {
"pages": {
"812323": {
"pageid": 812323,
"ns": 104,
"title": "API:Geosearch",
"revisions": [
{
"user": "Shirayuki",
"timestamp": "2018-11-04T05:25:34Z",
"comment": "translation tweaks"
},
{
"user": "Shirayuki",
"timestamp": "2018-11-25T06:06:50Z",
"comment": "translation tweaks"
}
]
}
}
}
}
|
サンプル コード
get_filtered_page_revisions.py |
---|
Python#!/usr/bin/python3
"""
get_filtered_page_revisions.py
MediaWiki API Demos
Demo of `Revisions` module: Get data including content of last 5 revisions
of the title [[API:Geosearch]] made after the 1st of July 2018 i.e 2018-07-01
excluding changes made by the user SSethi (WMF)
MIT License
"""
import requests
S = requests.Session()
URL = "https://www.mediawiki.org/w/api.php"
PARAMS = {
"action": "query",
"prop": "revisions",
"titles": "API:Geosearch",
"rvlimit": "5",
"rvprop": "timestamp|user|comment|content",
"rvdir": "newer",
"rvstart": "2018-07-01T00:00:00Z",
"rvexcludeuser": "SSethi (WMF)",
"rvslots": "main",
"formatversion": "2",
"format": "json"
}
r = S.get(url=URL, params=PARAMS)
data = r.json()
pages = data["query"]["pages"]
for page in pages:
print(page["revisions"])
PHP<?php
/*
get_filtered_page_revisions.php
MediaWiki API Demos
Demo of `Revisions` module: Get data including content of last 5 revisions of the title [[API:Geosearch]] made after July 1st 2018 excluding changes made by the user SSethi (WMF)
MIT License
*/
$endPoint = "https://www.mediawiki.org/w/api.php";
$params = [
"action" => "query",
"prop" => "revisions",
"titles" => "API:Geosearch",
"rvlimit" => "5",
"rvprop" => "timestamp|user|comment|content",
"rvdir" => "newer",
"rvstart" => "2018-07-01T00:00:00Z",
"rvexcludeuser" => "SSethi (WMF)",
"rvslots" => "main",
"formatversion" => "2",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
foreach( $result["query"]["pages"] as $k => $v ) {
var_dump( $v["revisions"] );
}
JavaScript/*
get_filtered_page_revisions.js
MediaWiki API Demos
Demo of `Revisions` module: Get data including content of last 5 revisions of the title [[API:Geosearch]] made after July 1st 2018 excluding changes made by the user SSethi (WMF)
MIT License
*/
var url = "https://www.mediawiki.org/w/api.php";
var params = {
action: "query",
prop: "revisions",
titles: "API:Geosearch",
rvlimit: "5",
rvprop: "timestamp|user|comment|content",
rvdir: "newer",
rvstart: "2018-07-01T00:00:00Z",
rvexcludeuser: "SSethi (WMF)",
rvslots: "main",
formatversion: "2",
format: "json"
};
url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});
fetch(url)
.then(function(response){return response.json();})
.then(function(response) {
var pages = response.query.pages;
for (var p in pages) {
console.log(pages[p].revisions);
}
})
.catch(function(error){console.log(error);});
MediaWiki JS/*
get_filtered_page_revisions.js
MediaWiki API Demos
Demo of `Revisions` module: Get data including content of last 5 revisions of the
title [[API:Geosearch]] made after July 1st 2018 excluding changes made by the user SSethi (WMF)
MIT License
*/
var params = {
action: 'query',
prop: 'revisions',
titles: 'API:Geosearch',
rvlimit: '5',
rvprop: 'timestamp|user|comment|content',
rvdir: 'newer',
rvstart: '2018-07-01T00:00:00Z',
rvexcludeuser: 'SSethi (WMF)',
rvslots: 'main',
formatversion: '2',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var pages = data.query.pages,
p;
for ( p in pages ) {
console.log( pages[ p ].revisions );
}
} );
|
例 3: リダイレクトをたどって特定ページの直近の更新履歴を取得
GET リクエスト
上記のリクエストでは、目的はリダイレクトを経て特定のページAntiSpoof で実行された更新のデータを抽出することです。 ページAntiSpoof は ページExtension:AntiSpoof にリダイレクトされるため、実際の更新データはページ Extension:AntiSpoof から抽出します。
レスポンス
レスポンス |
---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "AntiSpoof",
"to": "Extension:AntiSpoof"
}
],
"pages": [
{
"pageid": 8993,
"ns": 102,
"title": "Extension:AntiSpoof",
"revisions": [
{
"revid": 3419761,
"parentid": 3053177,
"minor": true,
"user": "Shirayuki",
"timestamp": "2019-09-22T05:14:46Z",
"comment": ""
}
]
}
]
}
}
|
起こりうるエラー
コード | 情報 |
---|---|
rvdiffto | rvdiffto は "prev"、"next"、"cur" (「以前」「以降」「現在の版」) もしくは正の整数を取ります。 |
rvnosuchrevid | There is no revision with ID ID. |
rvnosuchsection | 更新版 rID には section という節はありません。 |
rvrevids | The revids parameter may not be used with the list options (rvlimit, rvstartid, rvendid, rvdir=newer, rvuser, rvexcludeuser, rvstart, and rvend). |
rvmultpages | titles, pageids or a generator was used to supply multiple pages, but the rvlimit, rvstartid, rvendid, rvdir=newer, rvuser, rvexcludeuser, rvstart, and rvend parameters may only be used on a single page. |
rvaccessdenied | 現在の利用者には title を閲読する権限がありません |
rvbadparams | パラメータ start と startid は同時に使えません |
rvbadparams | パラメータ end と endid は同時に使えません |
rvbadparams | パラメータ user と excludeuser は同時に使えません |
invalidparammix | titles, pageids or a generator was used to supply multiple pages, but the rvlimit, rvstartid, rvendid, rvdir=newer, rvuser, rvexcludeuser, rvstart, and rvend parameters may only be used on a single page. |
accessdenied | You are not allowed to view title. |
badid_startid | No revision was found for parameter startid. |
badid_endid | No revision was found for parameter endid. |
追加的な注記
- ページの特定に使うパラメータは
pageids
もしくはtitles
。 個別の更新を特定するパラメータはrevids
。 API:クエリ を参照してください。 - Slots の特定にはパラメータ
rvslots
も使用可能。 パラメータが無い場合、API は単に slot の情報を返します。 - (enum) とマークされたパラメータを使う場合、
titles=
には題名1件のみふくむことができます。 - このモジュールはバージョン 1.25 以前は、生成器の機能がありませんでした。
- このモジュールの差分関連の機能は、バージョン 1.30 以降廃止され、API:比較 へ移行されました。
- このクエリのコードは、git リポジトリのApiQueryRevisions.phpにあります。
パラメーターの履歴
- v1.32:
rvslots
,roles
を導入しましたrvcontentformat
を廃止予定にしました - v1.30:
rvprop=parsetree
,rvexpandtemplates
,rvparse
,rvdiffto
,rvdifftotext
,rvdifftotextpst
を廃止予定にしました - v1.27:
rvdifftotextpst
を導入しました - v1.26:
parsetree
を導入しましたrvgeneratexml
を廃止予定にしました - v1.24:
rvtoken
を廃止予定にしました - v1.21:
contentmodel
,rvcontentformat
を導入しました - v1.19:
sha1
,rvparse
を導入しました - v1.17:
userid
,rvparse
を導入しました - v1.16:
parsedcomment
,tags
,rvdifftotext
,rvtag
を導入しました - v1.15:
rvdiffto
,rvcontinue
を導入しました - v1.14:
rvgeneratexml
を導入しました - v1.13:
rvsection
を導入しました - v1.12:
rvexpandtemplates
,rvtoken
を導入しました - v1.11:
ids
,flags
,size
,rvuser
,rvexcludeuser
を導入しました