API:Consulta
![]() | Está página faz parte da documentação da API de Ação do MediaWiki. |
O módulo action=query
permite-lhe obter a informação sobre uma wiki e os dados guardados na mesma, tal como o texto wiki de uma página em particular, as hiperligações e as categorias de um conjunto de páginas, ou o código (token) que precisa para alterar o conteúdo da wiki .
Documentação da API
action=query(main | query)
Fetch data from and about MediaWiki. All data modifications will first have to use query to acquire a token to prevent abuse from malicious sites. Parameters:
Examples:
|
Módulos de consulta
The query module has three types of submodules (also called query modules):
- Meta information about the wiki and the logged-in user.
- Properties of pages, including page revisions and content.
- Lists of pages that match certain criteria.
Exemplos
Exemplo 1: Especificar as páginas
Unlike meta and list query modules, all property query modules work on a set of pages that can be specified in one of the following ways:
- By name using the
titles
parameter, e.g.titles=Foo|Bar|Main_Page
.
- By page ID using the
pageids
parameter, e.g.pageids=123|456|75915
.
- By revision ID using the
revids
parameter, e.g.revids=478198|54872|54894545
.
Most query modules will convert revision ID to the corresponding page ID. Only prop=revisions actually uses the revision ID itself.
- Utilizar um gerador.
Pedido GET
Resposta
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 1130,
"ns": 0,
"title": "Avicenna"
},
{
"pageid": 17412,
"ns": 0,
"title": "Klein bottle"
},
{
"pageid": 33642,
"ns": 0,
"title": "Warrant"
}
]
}
}
Exemplo 2: Normalização do título
Title normalization converts page titles to their canonical form.
This means capitalizing the first character, replacing underscores with spaces, and changing namespace to the localized form defined for that wiki.
Pedido GET
Resposta
Resposta |
---|
{
"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
}
]
}
}
|
Exemplo 3: Títulos inválidos e em falta
Titles that don't exist or are invalid will have a missing
or invalid
attribute set in the response.
In output formats that support numeric array keys, missing and invalid titles will have negative page IDs.
Pedido GET
Resposta
Resposta |
---|
{
"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"
}
]
}
}
|
Exemplo 4: Continuar consultas
When all the data is not returned in the response of a query, there will be a continue
attribute to indicate that there is more data.
To get further data, add its values to the original request.
Pedido GET
Resposta
Resposta |
---|
{
"continue": {
"accontinue": "List_of_19th_century_baseball_players",
"continue": "-||"
},
"batchcomplete": "",
"query": {
"allcategories": [
{
"*": "List of"
},
{
"*": "List ofPalestinians"
},
{
"*": "List of \"M\" series military vehicles"
},
{
"*": "List of ''The Fast and the Furious'' characters"
},
{
"*": "List of 100 Deeds for Eddie McDowd"
},
{
"*": "List of 1919 Actors"
},
{
"*": "List of 1972 births"
},
{
"*": "List of 1999 ballet premieres"
},
{
"*": "List of 19th-century Russian artists"
},
{
"*": "List of 19th century Russian artists"
}
]
}
}
|
Exemplo 5: Batchcomplete
The API returns a batchcomplete
element to indicate that all data for the current batch of items has been returned.
MW 1.25+
In the response of the sample query below, batchcomplete
has been included to indicate that all the data for each of the three images has been returned.
The next continuation will begin returning data for the next set of 3 images.
Pedido GET
Resposta
Resposta |
---|
{
"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"
}
]
}
}
|
Exemplo 6: Geradores
Use generators if you want to get data about a set of pages.
For example, to get data about pages in a certain category, instead of querying list=categorymembers
and then querying again with pageids
set to all the returned pages, combine the two API calls into one by using generator=categorymembers
.
When using a list module as a generator, you don't need to specify the pages.
However, for a property module, you should specify the pages which the generator will work on.
For example, to load all pages that are linked to from the main page, use generator=links&titles=Main%20Page
.
Parameters passed to a generator must be prefixed with a g
. For instance, when using generator=backlinks
, use gbllimit
instead of bllimit
.
The sample query below gets links and categories for the first three pages in the main namespace starting with "Ba".
Pedido GET
Resposta
Resposta |
---|
{
"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"
}
]
}
}
|
Avisos possíveis
Mensagem de aviso | Causa |
---|---|
Não foi implementado nenhum suporte para as páginas especiais. | Thrown if a title in the Special: or Media: namespace is given. The pages in these namespaces cannot be queried. |
Resolução de redirecionamentos não pode ser usada em conjunto com o parâmetro revids. Quaisquer redirecionamentos para os quais revids aponta não foram resolvidos. | Thrown if the redirect parameter is used in a query that specifies pages using revids .
|
Histórico de parâmetros
- v1.21: Introduzido
continue
- v1.24: Introduzido
rawcontinue
(note que a continuação raw era o comportamento predefinido até à v1.26)
Notas adicionais
- Specifying titles through
titles
orpageids
is limited to 50 titles per query, or 500 for those with theapihighlimits
right. - Use multiple query modules together to get what you need in one request, e.g.
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.
Resolving redirects
Redirects can be resolved automatically, so that the target of a redirect is returned instead of the given title.
When present, they will always contain from
and to
attributes and may contain a tofragment
attribute for those redirects that point to specific sections.
Both normalization and redirection may take place.
In the case of multiple redirects, all redirects will be resolved, and in case of a circular redirect, there might not be a page in the 'pages' section (see also below).
Redirect resolution cannot be used in combination with the revids=
parameter or with a generator generating revids; doing that will produce a warning and will not resolve redirects for the specified revids.
The examples below show how the redirects
parameter works.
Using "redirects" parameter. "Main page" is a redirect to "Main Page"
Resultado |
---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "Main page",
"to": "Main Page"
}
],
"pages": [
{
"pageid": 15580374,
"ns": 0,
"title": "Main Page"
}
]
}
}
|
Same request but without the "redirects" parameter.
Resultado |
---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 217225,
"ns": 0,
"title": "Main page"
}
]
}
}
|
Without "redirects" you may want to use prop=info to obtain redirect status.
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
}
]
}
}
|
Request with a section link. "Wikipedia:!--" is a redirect to "Wikipedia:Manual of Style#Invisible comments"
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"
}
]
}
}
|
Here is a case of a circular redirect: Page1 → Page2 → Page3 → Page1. Also, in this example a non-normalized name 'page1' is used.
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
}
]
}
}
|
Consulte também
- API:Página principal - O guia de início rápido.
- API:Raw query continue - Contém informação sobre como utilizar o parâmetro
rawcontinue
.
![]() | This page or project is maintained by Core Platform Team .
Get help:
|