API:Revisions

This page is a translated version of the page API:Revisions and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎polski • ‎русский • ‎中文 • ‎日本語 • ‎한국어
Versión de MediaWiki:
1.8

Solicitud GET para obtener información de revisión de página(s).

API Documentación


prop=revisions (rv)

(main | query | revisions)
  • 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:

  1. Get data about a set of pages (last revision), by setting titles or pageids.
  2. Get revisions for one given page, by using titles or pageids with start, end, or limit.
  3. Get data about a set of revisions by setting their IDs with revids.
Parameters:
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.
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).
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 *.
rvlimit

Limit how many revisions will be returned.

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 this section number.

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.

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.

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/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
rvstartid

Start enumeration from this revision's timestamp. 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 this revision's timestamp. 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 user name, IP, 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 user name, IP, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
rvtag

Only list revisions tagged with this tag.

rvtoken
Deprecated.

Which tokens to obtain for each revision.

Values (separate with | or alternative): rollback
rvcontinue

When more results are available, use this to continue.

Ejemplo 1: Consigue datos de revisión de varias páginas

Solicitud GET

La solicitud, arriba, es obtener datos de revisión de páginas con títulos API y Main Page

Respuesta

Código de muestra

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 );
	}
} );

Ejemplo 2: Consigue las últimas cinco revisiones de una página filtrada por fecha y usuario

Solicitud GET

La solicitud, arriba, es para obtener datos de las últimas cinco revisiones de la página API:Geosearch realizadas después del 1 de julio de 2018, es decir, 2018-07-01 excluyendo los cambios realizados por el usuario SSethi (WMF)

Respuesta

Código de muestra

Ejemplo 3: Consigue la última revisión de una página, siguiendo cualquier redirección

Solicitud GET

La solicitud, arriba, es para obtener datos de revisión de la página AntiSpoof , siguiendo cualquier redirección. Como AntiSpoof redirige a Extension:AntiSpoof , en realidad devolverá datos de revisión por Extension:AntiSpoof .

Respuesta

Errores posibles

Código Información
rvdiffto rvdiffto debe establecerse en "prev", "next", "cur" o un número no-negativo.
rvnosuchrevid no hay revisión con ID ID
rvnosuchsection no hay sección section en rID
rvrevids El parámetro revids= no se puede usar con las opciones de la lista (limit, startid, endid, dirNewer, start, end).
rvmultpages Se utilizaron titles, pageids o un generator para suministrar múltiples páginas, pero los parámetros limit, startid, endid, dirNewer, user, excludeuser, start y end solo se pueden usar en una sola página.
rvaccessdenied Al usuario actual no le es permitido leer título
rvbadparams start y startid no pueden ser utilizados juntos
rvbadparams end y endid no pueden ser utilizados juntos
rvbadparams User y excludeuser no pueden ser utilizados juntos
invalidparammix Se utilizó titles, pageids o un generador para proporcionar múltiples páginas, pero los parámetros rvlimit, rvstartid, rvendid, rvdir=newer, rvuser, rvexcludeuser, rvstart y rvend solo se pueden utilizar en una sola página.
accessdenied No tienes permiso para ver title.
badid_startid No se encontró ninguna revisión para el parámetro startid.
badid_endid No se encontró ninguna revisión para el parámetro endid.

Notas adicionales

  • Las páginas están especificadas por el parámetro pageids o titles. Las revisiones individuales se especifican mediante el parámetro revids. Véase API:Query .
  • Slots se puede especificar con el parámetro rvslots. Cuando el parámetro no esté presente, la API solo devolverá información sobre la ranura principal.
  • Cuando se usan parámetros marcados como (enum), titles= debe tener solo un título listado.
  • Este módulo no pudo ser utilizado como generador antes de la versión 1.25.
  • La funcionalidad diff de este módulo quedó obsoleta en la versión 1.30 y se trasladó a API:Compara .
  • El código para esta consulta se encuentra en el repositorio git en ApiQueryRevisions.php.

Historial de parámetros

  • v1.32: Introducido rvslots,roles Deprecated rvcontentformat
  • v1.30: Deprecated parsetree,rvprop,rvexpandtemplates,rvparse,rvdiffto,rvdifftotext,rvdifftotextpst
  • v1.27: Introducido rvdifftotextpst
  • v1.26: Introducido parsetree Deprecated rvgeneratexml
  • v1.24: Deprecated rvtoken
  • v1.21: Introducido contentmodel,rvcontentformat
  • v1.19: Introducido sha1,rvparse
  • v1.17: Introducido userid,rvparse
  • v1.16: Introducido parsedcomment,tags,rvdifftotext,rvtag
  • v1.15: Introducido rvdiffto,rvcontinue
  • v1.14: Introducido rvgeneratexml
  • v1.13: Introducido rvsection
  • v1.12: Introducido rvexpandtemplates,rvtoken
  • v1.11: Introducido ids,flags,size,rvuser,rvexcludeuser

Véase también