API:Query
Esta página es parte de la documentación de la API de acciones de MediaWiki. |
El módulo action=query
te permite obtener información sobre un wiki y los datos almacenados en él, como el wikitext de una página en particular, los enlaces y categorías de un conjunto de páginas, o el token que necesitas para cambiar el contenido del wiki .
Documentación de la API
Módulos de consulta
El módulo de consulta tiene tres tipos de submódulos (también llamados módulos de consulta):
- Metainformación sobre la wiki y el usuario conectado.
- Propiedades de páginas, incluidas las revisiones de página y el contenido.
- Listas de páginas que coinciden con ciertos criterios.
Ejemplos
Ejemplo 1: Especificar páginas
A diferencia de los módulos de consulta meta y lista, todos los módulos de consulta de propiedades funcionan en un conjunto de páginas que se pueden especificar de una de las siguientes maneras:
- Por nombre usando el parámetro
titles
, p.ej.,titles=Foo|Bar|Main_Page
. - Por ID de página usando el parámetro
pageids
, p.ej.,pageids=123|456|75915
. - Por ID de revisión utilizando el parámetro
revids
, p.ej.,revids=478198|54872|54894545
. La mayoría de los módulos de consulta convertirán la ID de revisión a la ID de página correspondiente. Solo prop=revisions usa actualmente la ID de revisión en sí. - Utilizando un generador.
Petición GET
Respuesta
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 1130,
"ns": 0,
"title": "Avicenna"
},
{
"pageid": 17412,
"ns": 0,
"title": "Klein bottle"
},
{
"pageid": 33642,
"ns": 0,
"title": "Warrant"
}
]
}
}
Ejemplo 2: Normalización de títulos
La normalización de títulos convierte títulos de páginas a su forma canónica.
Esto significa poner en mayúscula el primer carácter, reemplazar los guiones bajos con espacios y cambiar el espacio de nombres a la forma localizada definida para esa wiki.
Petición GET
Respuesta
{
"batchcomplete": true,
"query": {
"normalized": [
{
"fromencoded": false,
"from": "Project:articleA",
"to": "Wikipedia:ArticleA"
},
{
"fromencoded": false,
"from": "article_B",
"to": "Article B"
}
],
"pages": [
{
"ns": 0,
"title": "Article B",
"missing": true
},
{
"ns": 4,
"title": "Wikipedia:ArticleA",
"missing": true
}
]
}
}
Ejemplo 3: Títulos no existentes o no válidos
Los títulos que no existan o que no sean válidos tendrán un atributo de missing
o invalid
establecido en la respuesta.
En formatos de salida que admitan claves de matriz numéricas, los títulos faltantes e inválidos tendrán IDs de página negativas.
En algunos casos, el título podrá ser visible para un usuario, pero no podrá ser accedido desde la API, como en páginas que reflejan el contenido de otro wiki.
Estos títulos tendrán fijado un atributo known
en la respuesta.
Petición GET
Respuesta
{
"batchcomplete": true,
"query": {
"pages": [
{
"ns": 0,
"title": "Doesntexist",
"missing": true
},
{
"title": "Talk:",
"invalidreason": "The requested page title is empty or contains only the name of a namespace.",
"invalid": true
},
{
"pageid": 15580374,
"ns": 0,
"title": "Main Page"
}
]
}
}
Ejemplo 4: consultas continuas
Cuando todo el dato no se devuelva en la respuesta de una consulta, habrá un atributo continue
para indicar que hay más dato.
Petición GET
Respuesta
{
"continue": {
"accontinue": "List_of_largest_companies_in_Sri_Lanka",
"continue": "-||"
},
"query": {
"allcategories": [
{
"category": "List of BioWare characters"
},
{
"category": "List of Harlequin Romance novels"
},
{
"category": "List of MPs elected in UK elections templates"
},
{
"category": "List of Metamorphoses characters"
},
{
"category": "List of Rockstar Games characters"
},
{
"category": "List of Star Trek awards and nominations"
},
{
"category": "List of Swedish films of the 2020s"
},
{
"category": "List of association football clubs in the Republic of Ireland templates"
},
{
"category": "List of awards and nominations received by Aleksej Pechkuroy"
},
{
"category": "List of cabinet templates"
}
]
}
}
Para obtener más datos, agregue sus valores a la solicitud original.
Petición GET
Respuesta
{
"batchcomplete": true,
"query": {
"allcategories": [
{
"category": "List of largest companies in Sri Lanka"
},
{
"category": "List of longest beaches of the world"
},
{
"category": "List of ministers by ministry of Bangladesh"
},
{
"category": "List of people from Palm Beach, Florida"
},
{
"category": "List of video game characters"
}
]
}
}
Ejemplo 5: Batchcomplete
La API devuelve un elemento batchcomplete
para indicar que todo el dato para el lote actual de artículos ha sido devuelto.
MW 1.25+
En la respuesta de la consulta de muestra anterior, se ha incluido batchcomplete
para indicar que se ha devuelto todo el dato de cada una de las tres imágenes.
La próxima continuación comenzará devolver dato para el siguiente conjunto de 3 imágenes.
Petición GET
Respuesta
{
"batchcomplete": true,
"continue": {
"aicontinue": "20020822143445|Do_You_Want_to_Know_a_Secret_(Beatles_song_-_sample).ogg",
"continue": "-||"
},
"query": {
"allimages": [
{
"name": "Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"timestamp": "2002-08-04T19:55:17Z",
"url": "https://upload.wikimedia.org/wikipedia/en/6/64/Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=67723",
"ns": 6,
"title": "File:Simon and Garfunkel - Mrs Robinson.ogg"
},
{
"name": "Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"timestamp": "2002-08-04T20:01:36Z",
"url": "https://upload.wikimedia.org/wikipedia/en/c/c1/Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=67779",
"ns": 6,
"title": "File:Simon and Garfunkel - Scarborough Fair.ogg"
},
{
"name": "Beatles_please_me.ogg",
"timestamp": "2002-08-22T14:34:00Z",
"url": "https://upload.wikimedia.org/wikipedia/en/e/ee/Beatles_please_me.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Beatles_please_me.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=74826",
"ns": 6,
"title": "File:Beatles please me.ogg"
}
]
}
}
Ejemplo 6: Generators
Usa generadores si deseas obtener datos sobre un conjunto de páginas
Por ejemplo, para obtener datos sobre páginas en una determinada categoría, en lugar de consultar list=categorymembers
y luego consultar nuevamente con pageids
configurado en todas las páginas devueltas, combine las dos llamadas API en una utilizando generator=categorymembers
.
Cuando utilices un módulo de lista como un generador, no necesitas especificar las páginas.
Sin embargo, para un módulo de propiedades, debes specify the pages en las que trabajará el generador.
Por ejemplo, para cargar todas las páginas que estén vinculadas desde la página principal, usa generator=links&titles=Main%20Page
.
Los parámetros pasados a un generador deben tener el prefijo g
. Por ejemplo, cuando uses
generator=backlinks
, usa gbllimit
en lugar de bllimit
.
La consulta de muestra abajo, obtiene enlaces y categorías para las primeras tres páginas en el espacio de nombres principal que comiencen con "Ba".
Petición GET
Respuesta
{
"continue": {
"plcontinue": "14977970|0|Kirkwall_Ba_game",
"continue": "||categories"
},
"query": {
"pages": [
{
"pageid": 98178,
"ns": 0,
"title": "Ba",
"links": [
{
"ns": 0,
"title": "BA"
},
{
"ns": 4,
"title": "Wikipedia:Mainspace"
},
{
"ns": 4,
"title": "Wikipedia:Naming conventions (capitalization)"
},
{
"ns": 4,
"title": "Wikipedia:Protection policy"
},
{
"ns": 4,
"title": "Wikipedia:Redirect"
},
{
"ns": 10,
"title": "Template:R from miscapitalisation"
},
{
"ns": 10,
"title": "Template:R from modification"
},
{
"ns": 10,
"title": "Template:R to disambiguation page"
},
{
"ns": 14,
"title": "Category:Redirects from ambiguous terms"
},
{
"ns": 14,
"title": "Category:Redirects from other capitalisations"
}
],
"categories": [
{
"ns": 14,
"title": "Category:Redirects from ambiguous terms"
},
{
"ns": 14,
"title": "Category:Redirects from other capitalisations"
},
{
"ns": 14,
"title": "Category:Unprintworthy redirects"
}
]
},
{
"pageid": 14977970,
"ns": 0,
"title": "Ba'"
},
{
"pageid": 33351890,
"ns": 0,
"title": "Ba'Al Shem Tov"
}
]
}
}
Continuing queries
Queries will often have more results available than are just shown in the original query. (Often this is because a List query's result limit has been reached.) In these cases, queries can be continued. More detailed information on continuing queries can be at API:Continue .
Avisos posibles
Mensaje de aviso | Causa |
---|---|
No se ha implementado soporte para páginas especiales. | Si se lanza un título en el Especial: o Media: el espacio de nombres está dado. Las páginas en estos espacios de nombres no se pueden consultar. |
Redirect resolution cannot be used together with the revids parameter. Any redirects the revids point to have not been resolved. | Se genera si el parámetro redirect se usa en una consulta que especifica páginas que usan revids .
|
Historial de parámetros
- v1.34: Introduced
exportschema
- v1.24: Introducido
rawcontinue
(nota: raw continuation era el comportamiento por defecto hasta v1.26) - v1.21: Introducido
continue
Notas adicionales
- Especificar títulos a través de
titles
opageids
está limitado a 50 títulos por consulta, o 500 para aquellos con el derechoapihighlimits
. - Usa múltiples módulos de consulta juntos para obtener lo que necesites en una solicitud, p.ej.,
prop=info|revisions&list=backlinks|embeddedin|allimages&meta=userinfo
. - 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.
Resolviendo redirecciones
Las redirecciones se pueden resolver automáticamente, de modo que se devuelva el objetivo de una redirección en lugar del título dado.
Cuando estén presentes, siempre contendrán atributos from
y to
y pueden contener un atributo tofragment
para los redireccionamientos que apuntan a secciones específicas.
Normalización y redirección, ambas pueden tener lugar.
En el caso de redirecciones múltiples, se resolverán todas, y en caso de una redirección circular, podrá no haber una página en la sección 'páginas' (véase un ejemplo de petición).
La resolución de redireccionamiento no se puede usar en combinación con el parámetro revids=
o con un generador que genere revids; hacer eso producirá un advertencia y no resolverá los redireccionamientos para los revids especificados.
Los ejemplos siguientes muestran cómo funciona el parámetro redirects
.
Resultado |
---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "Main page",
"to": "Main Page"
}
],
"pages": [
{
"pageid": 15580374,
"ns": 0,
"title": "Main Page"
}
]
}
}
|
Resultado |
---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 217225,
"ns": 0,
"title": "Main page"
}
]
}
}
|
Resultado |
---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 217225,
"ns": 0,
"title": "Main page",
"contentmodel": "wikitext",
"pagelanguage": "en",
"pagelanguagehtmlcode": "en",
"pagelanguagedir": "ltr",
"touched": "2017-12-17T02:02:05Z",
"lastrevid": 777924062,
"length": 170,
"redirect": true
}
]
}
}
|
Resultado |
---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "Wikipedia:!--",
"to": "Wikipedia:Manual of Style",
"tofragment": "Invisible comments"
}
],
"pages": [
{
"pageid": 33697,
"ns": 4,
"title": "Wikipedia:Manual of Style"
}
]
}
}
|
Resultado |
---|
{
"batchcomplete": true,
"query": {
"normalized": [
{
"fromencoded": false,
"from": "page1",
"to": "Page1"
}
],
"redirects": [
{
"from": "Page1",
"to": "Page2"
},
{
"from": "Page2",
"to": "Page3"
},
{
"from": "Page3",
"to": "Page1"
}
],
"pages": [
{
"ns": 0,
"title": "Page1",
"missing": true
}
]
}
}
|
Véase también
- API:Portada - La guía de inicio rápida.
- API:Raw query continue - Contiene información sobre como usar el parámetro
rawcontinue
.
- Maintained by MediaWiki Interfaces Team.
- Live chat (IRC): #mediawiki-core connect
- Issue tracker: Phabricator MediaWiki-Action-API (Report an issue)