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
Módulos de consulta
O módulo de consulta tem três tipos de submódulos (também chamados módulos de consulta):
- Info Meta sobre a wiki e o usuário conectado.
- Properties de páginas, incluídas as revisões de página e o conteúdo.
- Lists de páginas que coincidem com certos critérios.
Exemplos
Exemplo 1: Especificar as páginas
A diferença dos módulos de consulta meta e lista, todos os módulos de consulta de propriedades funcionam num conjunto de páginas que se podem especificar de uma das seguintes maneiras:
- 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
.
A maioria dos módulos de consulta converterão a VÃO de revisão à VÃO de página correspondente. 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
Normalização de títulos converte títulos de páginas a sua forma canónica.
Isto significa pôr em maiúscula o primeiro carácter, substituir os guiões baixos com espaços e mudar o espaço de nomes à forma localizada definida para essa wiki.
Pedido GET
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.
Em formatos de saída que admitam chaves de matriz numéricas, os títulos faltantes e inválidos terão IDs de página negativas.
In some cases, a title can be viewed by a user but cannot be accessed by the API, such as pages that mirror content from another wiki.
These titles will have a known
attribute set in the response.
Pedido GET
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.
Pedido GET
Resposta
{
"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 obter mais dados, agregue seus valores à solicitação original.
GET request
Response
{
"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"
}
]
}
}
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.
A próxima continuação começará devolver dado para o seguinte conjunto de 3 imagens.
Pedido GET
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
Usa geradores se desejas obter dados sobre um conjunto de páginas
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
.
Quando utilizes um módulo de lista como um gerador, não precisas especificar as páginas.
No entanto, para um módulo de propriedades, deves specify the pages nas que trabalhará o gerador.
For example, to load all pages that are linked to from the main page, use generator=links&titles=Main%20Page
.
Os parâmetros passados a um g
erador devem ter o prefixo g. Por exemplo, quando uses
generator=backlinks, usa gbllimit
em lugar de bllimit.
A consulta de mostra abaixo, obtém enlaces e categorias para as primeiras três páginas no espaço de nomes principal que comecem com "Ba".
Pedido GET
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"
}
]
}
}
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 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.34: Introduced
exportschema
- v1.24: Introduzido
rawcontinue
(note que a continuação raw era o comportamento predefinido até à v1.26) - v1.21: Introduzido
continue
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 an example request).
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.
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
}
]
}
}
|
Ver 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
.
- Maintained by MediaWiki Interfaces Team.
- Live chat (IRC): #mediawiki-core connect
- Issue tracker: Phabricator MediaWiki-Action-API (Report an issue)