API:Otevřené vyhledávání
Tato stránka je součástí dokumentace k API Action MediaWiki. |
Požadavek GET pro vyhledávání wiki stránek podle názvu, toto používá Formát OpenSearch.
Dokumentace API
Příklad
Dotazování přes GET
Odpověď
[
"Hampi",
[
"Hampi",
"Hampi (town)",
"Hampi Express",
...
],
[
"Hampi, also referred to as the Group of Monuments at Hampi, is a UNESCO World Heritage Site located in east-central Karnataka, India.",
"Hampi is a town in Hospet taluk of the Ballari district in the Indian state of Karnataka. Located along the Tungabhadra River in the east and center part of the state, near the border of Andhra Pradesh, Hampi is near the city of Hosapete.",
"The Hampi Express is a daily express train running between the Mysooru and Hubballi Junction, the headquarters of the South Western Railway in India.",
...
],
[
"https://en.wikipedia.org/wiki/Hampi",
"https://en.wikipedia.org/wiki/Hampi_(town)",
"https://en.wikipedia.org/wiki/Hampi_Express",
...
]
]
Na wikinách Wikimedie jsou popisy zakázány z důvodu výkonu, takže druhé pole obsahuje pouze prázdné řetězce. Podívejte se na stránku T241437.
Ukázkový kód
Python
#!/usr/bin/python3
"""
opensearch.py
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"action": "opensearch",
"namespace": "0",
"search": "Hampi",
"limit": "5",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA)
PHP
<?php
/*
opensearch.php
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "opensearch",
"search" => "Hampi",
"limit" => "5",
"namespace" => "0",
"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 );
var_dump( $result );
JavaScript
/*
opensearch.js
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "opensearch",
search: "Hampi",
limit: "5",
namespace: "0",
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) {console.log(response);})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
opensearch.js
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
var params = {
action: 'opensearch',
search: 'Hampi',
limit: '5',
namespace: '0',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
Možné chyby
Kód | Popis |
---|---|
nosearch | The search parameter must be set. |
unknown_format | Unrecognized value for parameter format: aaa. |
Další poznámky
V souvislosti s tímto rozhraním API několik dalších odkazů pro správce stránek a vývojáře rozšíření MediaWiki:
- Extension:TitleKey - umožňuje, aby návrhy vyhledávání z tohoto rozhraní API nerozlišovaly malá a velká písmena.
- Extension:TextExtracts a
$wgExtractsExtendOpenSearchXml
nakonfigurované jako true vLocalSettings.php
by umožnily každé položce ve formátu XML zahrnout tag<Description>
s textovým výpisem z článku. - Rozšíření:PageImages a
$wgPageImagesExpandOpenSearchXml
nakonfigurované jakotrue
vLocalSettings.php
by umožnily každé položce ve formátu XML zahrnout značku<Image>
s miniaturou z článku.